Control system, control device, and control method

WO2026220545A1PCT designated stage Publication Date: 2026-10-22MITSUBISHI ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/015033
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-17
Publication Date
2026-10-22

Smart Images

  • Figure JP2025015033_22102026_PF_FP_ABST
    Figure JP2025015033_22102026_PF_FP_ABST
Patent Text Reader

Abstract

A control system (4) according to the present disclosure comprises a first computation unit (1) and second computation units (2-1, 2-2) that cooperate with the first computation unit (1) to execute cooperative control processing for controlling objects being controlled (3-1, 3-2) and controls the objects being controlled (3-1, 3-2). The cooperative control processing includes a plurality of control processes. The first computation unit (1) is provided with a calculation unit (12) that calculates a required time required for the control processes executed by the second computation units (2-1, 2-2) and a determination unit (13) that determines content and instruction timing of an instruction for executing the cooperative control processing for one or more of the second computation units (2-1, 2-2) on the basis of the calculated required time and related information indicating the relation between the control processes.
Need to check novelty before this filing date? Find Prior Art

Description

Control system, control device, and control method

[0001] The present disclosure relates to a control system, a control device, and a control method in which a plurality of arithmetic units cooperate to control a control target.

[0002] A technique is known for realizing work including a plurality of processing steps by a plurality of devices. Patent Document 1 discloses a schedule creation and execution method for a substrate processing apparatus in which a master computer controls a slave sequencer (PLC: Programmable Logic Controller). The computer described in Patent Document 1 predetermines a schedule that reflects a preset correction time in consideration of fluctuations in communication delay time, and transmits a command related to each processing step to each slave based on this schedule. This reduces the waiting time between processing steps compared to the case where the next processing step is instructed after receiving a notification of completion of the processing step from the slave, and prevents deterioration of process reproducibility due to fluctuations in communication delay time.

[0003] Japanese Unexamined Patent Application Publication No. 2003-99112

[0004] On the other hand, in a process where a plurality of arithmetic units cooperate to control a control target, for example, when data generated by a certain arithmetic unit through a first process is used by another arithmetic unit for a second process, if the generation of data by the first process is not completed even after the second process is started, a waiting time occurs in the second process, and the arithmetic process cannot be executed efficiently. In order to avoid this problem, when a schedule is determined in consideration of a preset correction time as in the technique described in Patent Document 1, the correction time must be set so that the second process is started after the data is reliably generated by the first process. However, the time required for each process varies depending on the hardware (H / W) configuration, communication environment, H / W performance, and the like. If a schedule is created in advance assuming the maximum required time of each process in consideration of this variation, a waiting time occurs when the actual required time is shorter than the required time on the schedule. As a result, the throughput of the entire control process performed by the cooperation of the plurality of arithmetic units is reduced.

[0005] This disclosure has been made in view of the above, and aims to provide a control system that can optimize the collaborative schedule of control processing performed by multiple processing units working together.

[0006] To solve the above-mentioned problems and achieve the objectives, the control system according to this disclosure includes a first arithmetic unit and one or more second arithmetic units that cooperate with the first arithmetic unit to execute a cooperative control process for controlling a controlled object, and the control system controls one or more controlled objects, wherein the cooperative control process includes a plurality of control processes. The first arithmetic unit includes a calculation unit that calculates the time required for a control process executed by one or more second arithmetic units, and a determination unit that determines the content and timing of an instruction to execute a cooperative control process for one or more second arithmetic units based on the calculated time required and related information indicating the relationship between the control processes.

[0007] The control system described herein has the effect of enabling the optimization of collaborative schedules.

[0008] Figures showing an example of the functional configuration of the control system according to Embodiment 1. Figures showing an example of the required time for the preceding processing in the linked processing of Embodiment 1. Figures showing an example of the required time information of Embodiment 1. Figures showing an example of the processing procedure for timing adjustment of the collaborative control processing in the first calculation unit of Embodiment 1. Figures showing an example of the linked processing information of Embodiment 1. Figures for explaining the expected arrival time of Embodiment 1. Figures showing a first example of the hardware configuration of the control system of Embodiment 1. Figures showing a second example of the hardware configuration of the control system of Embodiment 1. Figures showing a third example of the hardware configuration of the control system of Embodiment 1. Figures showing an example of the configuration of the control system of Embodiment 2. Figures showing an example of the configuration of the control system of Embodiment 3. Figures showing an example of the processing program of Embodiment 3. Figures showing an example of the reference schedule of Embodiment 4. Figures showing an example of operation when an abnormality is detected in the control system of Embodiment 4. Sequence diagram showing an example of updating the reference schedule based on the progress status

[0009] The control system, control device, and control method according to the embodiment will be described in detail below with reference to the drawings.

[0010] Embodiment 1. Figure 1 is a diagram showing an example of the functional configuration of a control system 4 according to Embodiment 1. As shown in Figure 1, the control system 4 comprises a first calculation unit 1, second calculation units 2-1, 2-2, and control targets 3-1, 3-2. Note that control targets 3-1, 3-2 do not necessarily have to be included in the control system 4. The control system 4 is used, for example, for control targets 3-1, 3-2 used in a factory production line, but the application of the control system 4 is not limited to production lines. Hereinafter, when the second calculation units 2-1, 2-2 are not individually distinguished, they will also be referred to as the second calculation unit 2, and when the control targets 3-1, 3-2 are not individually distinguished, they will also be referred to as control targets 3. In Figure 1, two second calculation units 2 are shown, but there may be one or more second calculation units 2, and the number of second calculation units 2 is not limited to the example shown in Figure 1. Similarly, there may be one or more control targets 3, and the number of control targets 3 is not limited to the example shown in Figure 1. That is, the control system 4 controls one or more control targets 3. Furthermore, the numerical values ​​of the branch numbers in the codes of the second arithmetic unit 2 and the controlled object 3 are identification numbers in each configuration example, and the branch numbers themselves do not indicate a unique device; the branch numbers are changed as appropriate depending on the configuration example.

[0011] The first calculation unit 1 and the second calculation units 2-1 and 2-2 cooperate to control the controlled objects 3-1 and 3-2. The controlled object 3 may be, for example, a robot arm (manipulator) which is a robot equipped with an arm and a hand but no moving mechanism, a robot equipped with both a moving mechanism and an arm and a hand, a machine tool, or a conveying device, but other devices may also be used. The conveying device may be an AGV (Automatic Guides Vehicle), an AMR (Autonomous Mobile Robot), or a conveying roller, conveying conveyor, etc. Furthermore, the controlled objects 3-1 and 3-2 are not limited to independent devices, but may also be motors, inverters, etc. that constitute a device.

[0012] Hereinafter, the entire control performed by the cooperation of the first calculation unit 1 and the second calculation units 2-1 and 2-2 will also be referred to as collaborative control processing. Through the collaborative control processing, the controlled objects 3-1 and 3-2 will operate, for example, to perform a series of tasks on a production line. Collaborative control processing includes multiple control processes. Each of the multiple control processes is performed in a distributed manner by the first calculation unit 1 and the second calculation units 2-1 and 2-2. Hereinafter, the control processes that constitute collaborative control processing will also be simply referred to as processes. Note that the controlled objects 3 of the first calculation unit 1 and the second calculation units 2-1 and 2-2 may be defined individually, or for example, the first calculation unit 1 may control one controlled object 3, and the two second calculation units 2-1 and 2-2 may control one controlled object 3.

[0013] The first arithmetic unit 1 is the master and works in cooperation with the second arithmetic units 2-1 and 2-2 to control the control targets 3-1 and 3-2. The second arithmetic unit 2 is the slave and controls the control targets 3-1 and 3-2 based on instructions from the first arithmetic unit 1. In this embodiment, the first arithmetic unit 1 calculates the time required for the processing to be performed by the second arithmetic units 2-1 and 2-2, and uses this time to determine the content and timing of instructions to the second arithmetic unit 2 so that the collaborative control processing is executed according to a preset reference schedule. As a result, the control system 4 of this embodiment can suppress the occurrence of waiting time and improve the throughput of the collaborative control processing. The reference schedule in this embodiment includes information indicating the execution order of each of the multiple processes included in the collaborative control processing. In addition, the reference schedule may specify the start time of processing in relative time for at least some of the processes, for example, that a certain process is performed one minute after the start of the collaborative control processing. Details of the operation of the first arithmetic unit 1 will be described later.

[0014] The following describes an example in which the functions of each of the first arithmetic unit 1 and the second arithmetic units 2-1 and 2-2 are predetermined; that is, it is predetermined which arithmetic unit performs which processing. However, the first arithmetic unit 1 may change the functions of both the first arithmetic unit 1 and the second arithmetic units 2-1 and 2-2. For example, the division of functions may be changed so that the processing previously performed by the second arithmetic unit 2-1 is performed by the second arithmetic unit 2-2, or the processing previously performed by the second arithmetic unit 2-1 may be distributed and performed by both the second arithmetic unit 2-1 and the second arithmetic unit 2-2. Furthermore, some of the processing previously performed by the first arithmetic unit 1 may be performed by the second arithmetic units 2-1 and 2-2, or some of the processing previously performed by the second arithmetic units 2-1 and 2-2 may be performed by the first arithmetic unit 1. As described above, since the control system 4 is equipped with multiple arithmetic units, if, for example, a failure occurs in one of the second arithmetic units 2, control can be continued by changing the division of functions. Therefore, the control system 4 of this embodiment can improve reliability and availability compared to a system that is equipped with only one computer.

[0015] The first arithmetic unit 1 comprises a control processing unit 11, a calculation unit 12, a determination unit 13, a storage unit 14, and a transmitting / receiving unit 15. The transmitting / receiving unit 15 exchanges data with other devices or other components within the same device. As will be described later, the first arithmetic unit 1 and the second arithmetic units 2-1, 2-2 may each be separate devices (separate control devices), or at least two of the first arithmetic unit 1 and the second arithmetic units 2-1, 2-2 may be provided within the same device. If the second arithmetic unit 2 is a separate device from the first arithmetic unit 1, the transmitting / receiving unit 15 transmits and receives data by communicating with the second arithmetic unit 2. The communication line between the first arithmetic unit 1 and the second arithmetic units 2-1, 2-2 may be a wired line, a wireless line, or a communication line that combines wired and wireless connections. Furthermore, the first arithmetic unit 1 and the second arithmetic units 2-1 and 2-2 may be connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network) such as the Internet. The communication line may be a dedicated line, a public line, or a mixture of dedicated and public lines. In addition, if the second arithmetic unit 2 is installed in the same device as the first arithmetic unit 1, the transmitting and receiving unit 15 transmits and receives data via the connecting lines within the device.

[0016] The storage unit 14 stores data used in calculations performed by the first arithmetic unit 1, data received from the second arithmetic unit 2, and the like. For example, the storage unit 14 stores the reference schedule described above. The storage unit 14 also stores cooperation processing information that indicates the relationships between processes for processes that need to be coordinated between different arithmetic units. Details of the cooperation processing information will be described later. Cooperation processing information is an example of relationship information that indicates the relationship between control processes. For example, when data calculated in the first process performed by the second arithmetic unit 2-1 is used in the second process performed by the first arithmetic unit 1, it is desirable that the second process start as soon as the data calculated by the first process is received in order to improve throughput while ensuring that the processing is performed correctly. In this case, the end time of the first process and the start time of the second process are related. Processes that need to be coordinated are those whose start or end time affects other processes. Of a pair of processes that need to be coordinated, the process that is performed first, that is, the process whose end time affects the start time of the other process, is called the preceding process, and the process that is performed after the preceding process is completed is called the succeeding process. Furthermore, processes that require coordination will also be referred to as "coordination target processes" below. Coordination target processes can also be described as processes that require adjustment of processing timing between the first arithmetic unit 1 and the second arithmetic unit 2.

[0017] Furthermore, the reference schedule may include information indicating coordinated processing information. That is, the reference schedule may be related information indicating the relationships between control processes, or the related information may be information obtained from the reference schedule. For example, if the reference schedule shows which processing is performed by which arithmetic unit, along with the order of processing, then information indicating that coordination is necessary between the processing targets may be included.

[0018] The control processing unit 11 executes the processing that should be performed by its own unit, i.e., the first calculation unit 1, among the collaborative control processing, based on the reference schedule stored in the storage unit 14. The control processing unit 11 also generates instruction information indicating the content of the instructions to the second calculation unit 2 based on the reference schedule stored in the storage unit 14. For the processing that the second calculation unit 2 will perform among the collaborative processing, the control processing unit 11 transmits the instruction information to the second calculation unit 2 via the transmission / reception unit 15 at the timing determined by the determination unit 13.

[0019] The calculation unit 12 calculates the time required for the processing to be performed by the second arithmetic unit 2. Specifically, the calculation unit 12 calculates the time required for at least the preceding processing in the linked processing and stores the calculated time in the storage unit 14. Alternatively, the calculation unit 12 may notify the determination unit 13 of the calculated time, and the determination unit 13 may hold the time in its internal memory. The calculation unit 12 may also calculate the time required for processing other than the preceding processing in the linked processing.

[0020] The decision unit 13 determines the content and timing of instructions to the second calculation unit 2 for executing the cooperative control process, based on the calculated required time and related information indicating the relationships between control processes. Specifically, the decision unit 13 uses, for example, the reference schedule, cooperation processing information, and required time stored in the storage unit 14 to determine the content and timing (instruction timing) of instructions to the second calculation units 2-1 and 2-2 so that the cooperative control process is executed according to the pre-set reference schedule. The decision unit 13 outputs the determined content and timing of the instructions to the control processing unit 11. For example, if the content of the instruction is a request to start a process, the decision unit 13 notifies the control processing unit 11 to generate the instruction information indicating the request to start the process when it is time to send the instruction information indicating the request to start the process to the second calculation unit 2. Alternatively, the decision unit 13 may notify the control processing unit 11 how many seconds later and what kind of instruction content to send to the second calculation unit 2, based on the determination result of the content and timing of the instructions. Furthermore, the content of the instruction is not limited to the start of processing, i.e., the immediate start of processing, but may also indicate a relative time for the start of processing, such as starting processing in 5 seconds. Here, an example is described in which the control processing unit 11 generates instruction information to be transmitted to the second calculation unit 2, but it is not limited to this, and the determination unit 13 may generate the instruction information and transmit the generated instruction information to the second calculation unit 2 via the transmission / reception unit 15.

[0021] In Figure 1, the control processing unit 11, the determination unit 13, and the calculation unit 12 are provided separately, but the control processing unit 11 may also have the functions of at least one of the determination unit 13 and the calculation unit 12.

[0022] The second arithmetic unit 2 works in cooperation with the first arithmetic unit 1 to perform collaborative control processing to control the controlled object 3. The second arithmetic unit 2 includes a transmitting / receiving unit 21, a control processing unit 22, and a storage unit 23. The transmitting / receiving unit 21 exchanges data with other devices or other components within the same device. For example, when the transmitting / receiving unit 21 receives instruction information from the first arithmetic unit 1, it outputs the received instruction information to the control processing unit 22. The storage unit 23 stores data used for calculations by the second arithmetic unit 2, data received from the controlled object 3, data received from the first arithmetic unit 1, and so on.

[0023] The control processing unit 22 controls the controlled object 3 by performing some of the processes that constitute the cooperative control process based on the instruction information received from the first calculation unit 1 via the transmitting / receiving unit 21. The second calculation unit 2 basically operates based on the instruction information from the first calculation unit 1, but in addition to operating based on the instruction information from the first calculation unit 1, it may be possible to perform autonomous operations when certain conditions are met, or it may be possible to perform operations in response to the operator's operations when an operating means (not shown) is operated by the operator.

[0024] Next, the time required for the preceding processing in the collaborative processing of this embodiment will be explained. Figure 2 is a diagram showing an example of the time required for the preceding processing in the collaborative processing of this embodiment. In the example shown in Figure 2, the first arithmetic unit 1 executes processes A, B, C, D, and E, which are part of the processes included in the collaborative control processing, and the second arithmetic unit 2 executes process X, which is part of the processes included in the collaborative control processing. In the example shown in Figure 2, the data obtained by process X, i.e., the processing result of process X, is used in process E. Therefore, the first arithmetic unit 1 needs to acquire the processing result of process X at the start of process E. If process X is started with enough leeway so that the processing result of process X can be acquired in time for the start of process E, if process X is started too early, constraints will be placed on the processing that the second arithmetic unit 2 performs before process X, and unnecessary waiting time for various resources may occur. Conversely, if process X is started too late, the processing result of process X will not be available in time for the start of process E, causing waiting time in the first arithmetic unit 1 and reducing the throughput of the collaborative control processing. As described above, the occurrence of unnecessary waiting times and decreased throughput will prevent the collaborative schedule from being optimized. Therefore, it is desirable that the start timing of process X be set to match the actual time required for process X, thereby optimizing the collaborative schedule.

[0025] In the example shown in Figure 2, processes E and X are linked processes that require coordination, with process X being the preceding process and process E being the succeeding process. In the example shown in Figure 2, the condition for coordination is that the control processing unit 11 of the first arithmetic unit 1 receives the processing result of the preceding process X before reaching a specific state, i.e., a specific stage. The coordination condition is a condition related to the result of the preceding process, and if this condition is met, the succeeding process is executed by the first arithmetic unit 1. In the example shown in Figure 2, the specific state (hereinafter referred to as the specific state) is the start of process E (start time).

[0026] As shown in Figure 2, at the start of process E, in order for the control processing unit 11 of the first arithmetic unit 1 to receive the processing result of process X, in this embodiment, the determination unit 13 of the first arithmetic unit 1 determines the timing for sending a request to start process X, taking into account the time required for process X.

[0027] The required time includes, for example, the time required for the execution of process X in the second arithmetic unit 2, the transmission time of instruction information from the first arithmetic unit 1 to the second arithmetic unit 2, and the transmission time of data from the second arithmetic unit 2 to the first arithmetic unit 1. If the first arithmetic unit 1 and the second arithmetic unit 2 are separate devices and communicate with each other, the transmission time includes the communication time. If the first arithmetic unit 1 and the second arithmetic unit 2 are located in the same device, the transmission time includes the time it takes for data to be transmitted within the device. In addition, the time required within each arithmetic unit may also be included in the transmission time, such as the time from the decision to send instruction information within the first arithmetic unit 1 until the instruction information is sent out from the transmitting / receiving unit 15, and the time from the reception of instruction information within the second arithmetic unit 2 until the control processing unit 22 receives the instruction information. The time required within each arithmetic unit may not be considered if its impact is negligibly small. In the example shown in Figure 2, the time required for process X is the time from when the request to start process X is sent from the first arithmetic unit 1 as instruction information until the first arithmetic unit 1 receives the processing result of process X.

[0028] The time required to execute process X in the second arithmetic unit 2 may be determined solely by the calculation time in the second arithmetic unit 2, but it may also depend on the operation of the controlled object 3, for example, when the controlled object 3 operates as a result of process X, such as the time from when the second arithmetic unit 2 sends a command to the controlled object 3 until the operation of the controlled object 3 is completed. Of the required time, the time that depends on the operation of the controlled object 3 will be referred to below as the operation time of the controlled object 3.

[0029] In this embodiment, the calculation unit 12 of the first arithmetic unit 1 calculates the required time for at least the preceding processes in the linked processing based on measurements, simulations, etc., and stores the calculated required time information in the storage unit 14. Figure 3 is a diagram showing an example of the required time information in this embodiment. In Figure 3, an example is shown in which three elements are considered as elements of the required time for each process: calculation time in the second arithmetic unit 2, transmission time, and operation time of the controlled object 3. Note that the operation time of the controlled object 3 does not need to be considered depending on the content of the process, so the operation time of the controlled object 3 does not need to be calculated. For example, in the example shown in Figure 3, the operation time of the controlled object 3 is not calculated for process X, but it is calculated for process Y. The calculation unit 12 calculates the time corresponding to each element according to the content of the process, and the sum of the times corresponding to each element is the required time. Which elements to consider for each process may be determined by the calculation unit 12 analyzing a program or the like that describes the processing content, or it may be predetermined, or it may be set and changed by the operator or the like.

[0030] The calculation unit 12 calculates the calculation time of the second calculation unit 2, for example, by first calculating the time required for processing according to the content of processing in the second calculation unit 2, and then adding the control cycle. When the second calculation unit 2 executes a ladder program, the calculation unit 12 may calculate the calculation time based on the number of steps in the ladder program and the timer setting time in the ladder program. For example, the execution time of one step is multiplied by the number of steps, the timer setting time set in the step where the timer is used in the ladder program is added to the multiplication result, and the control cycle is added to the addition result. For the execution time of one step, a representative value such as the average execution time of one step or a percentile value such as the 70th percentile value may be obtained based on the measurement results, and the representative value may be used as the execution time of one step. Alternatively, the execution time of one step may be set by the operator. Since the execution time of one step also depends on the hardware specifications of the second calculation unit 2, when using measured values, measured values ​​may be obtained using the second calculation unit 2 itself, or measured values ​​may be obtained using a calculation unit with the same hardware specifications.

[0031] Furthermore, the calculation unit 12 may, for example, measure the RTT (Round Trip Time) by sending test data multiple times from the first calculation unit 1 to the second calculation unit 2, and calculate the transmission time based on the maximum value among the measured values.

[0032] Furthermore, the calculation unit 12 may calculate the operating time of the controlled object 3 by actually measuring it, or by performing a simulation. For example, when the controlled object 3 moves a certain distance, the calculation unit 12 may consider the speed of movement and calculate the operating time of the controlled object 3 based on acceleration and deceleration time based on acceleration and deceleration parameters, delay time due to filters such as S-curve filters, etc.

[0033] The calculation unit 12 may also calculate the required time by adding a margin to the time calculated for each element. The margin may be a predetermined value, a value obtained by multiplying the calculated time by a constant ratio less than 1, such as 0.1, or any other value.

[0034] In Figure 2, the condition for starting process E is that the first arithmetic unit 1 obtains the processing result of process X in a specific state. However, the system is not limited to this, and for example, the condition for starting a subsequent process may be that the operation of the controlled object 3 reaches a specific state due to a preceding process in the linked process. For example, in a case where the first arithmetic unit 1 starts a process when the position of the robot, which is the controlled object 3 controlled by the second arithmetic unit 2, arrives at a specific position, and if the arrival at the specific position can be detected from a sensor (not shown) mounted on the robot, the transmission time of the detection result from the sensor to the first arithmetic unit 1 may be considered instead of the data transmission time from the second arithmetic unit 2 to the first arithmetic unit 1.

[0035] The method for calculating the required time described above is merely an example, and the method for calculating the required time is not limited to the example described above. Any method that estimates the actual required time for each process is acceptable. Furthermore, while this example describes the process of the first arithmetic unit 1 and the process of the second arithmetic unit 2 as linked processes, the method is not limited to this, and similarly, the processes of two second arithmetic units 2 may be linked processes. For example, when the result of the process in the second arithmetic unit 2-1 is used in the process of the second arithmetic unit 2-2, the first arithmetic unit 1 may determine the timing for instructing the start request for the said process by considering the required time of the preceding process in the second arithmetic unit 2-1.

[0036] Next, the operation of the first calculation unit 1 of this embodiment will be described. Figure 4 is a flowchart showing an example of a processing procedure related to timing adjustment of collaborative control processing in the first calculation unit 1 of this embodiment. As shown in Figure 4, the first calculation unit 1 determines the processing to be subject to determination of required time based on the collaborative processing information (step S1). In detail, the calculation unit 12 determines the processing to be subject to determination of required time using the collaborative processing information stored in the storage unit 14. As mentioned above, the collaborative processing information may be integrated with the basic schedule.

[0037] Figure 5 shows an example of the linked processing information in this embodiment. In the example shown in Figure 5, the linked processing information includes information indicating the subsequent and preceding processes that constitute the linked processing, as well as the corresponding conditions for each linked processing. In the example shown in Figure 5, the processing E of the first arithmetic unit 1 and the processing X of the second arithmetic unit 2-1 constitute one pair of linked processing, and the processing G of the first arithmetic unit 1 and the processing Y of the second arithmetic unit 2-2 constitute another pair of linked processing. As shown in Figure 5, the condition for the first pair of linked processing is that the data obtained by processing X is used in processing E, and the condition for the second pair of linked processing is that processing G is started when the controlled object 3 moves to position P by processing Y. Figure 5 is just one example, and the linked processing and corresponding conditions are not limited to the example shown in Figure 5.

[0038] Returning to the explanation of Figure 4, after step S1, the first calculation unit 1 calculates the required time (step S2). Specifically, the calculation unit 12 calculates the required time for each process with respect to the process for which the required time was determined in step S1, and stores the calculation results as required time information in the storage unit 14. The calculation of the required time is performed by, for example, measurement or simulation, as described above, but is not limited to these.

[0039] The first arithmetic unit 1 determines whether or not to start the collaborative control process (step S3). For example, the control processing unit 11 may decide to start the collaborative control process when it receives an instruction to start the collaborative control process from an operator via an operating means (not shown), or it may start the collaborative control process when a start time is specified in advance. Alternatively, the start time may be specified in a reference schedule. When the control processing unit 11 starts the collaborative control process, it executes the processing that the first arithmetic unit 1 should execute in the collaborative control process according to the reference schedule.

[0040] If it is determined not to start the collaborative control process (Step S3 No), the first calculation unit 1 repeats Step S3. If it is determined to start the collaborative control process (Step S3 Yes), the first calculation unit 1 calculates the estimated time to reach the next specific state (Step S4). The estimated time to reach the state is the time from the current point in time until the specific state is reached. Specifically, the calculation unit 12 calculates the estimated time to reach the state using a reference schedule and outputs the calculated estimated time to the determination unit 13.

[0041] Figure 6 is a diagram illustrating the estimated arrival time in this embodiment. In the example shown in Figure 6, the first calculation unit 1 is currently executing process A. In Figure 6, completed processes are shown with solid lines, and processes to be executed are shown with dashed lines. In the example shown in Figure 6, the specific state is the start of process E, so the calculation unit 12 estimates the time required until process D, which precedes process E, is completed. In detail, the calculation unit 12 calculates the time required for processes A, B, C, and D, and calculates the time until process A is completed by subtracting the elapsed time from the start of process A to the present from the time required for process A. Then, the calculation unit 12 calculates the estimated arrival time by adding the time until process A is completed and the time required for processes B, C, and D. The time required for each process includes, for example, the execution time of the process and the operation time of the controlled object 3, as explained in the preceding process time. The method for calculating the execution time of the process and the operating time of the controlled object 3 is the same as the method for calculating the required time of the preceding process described above, and is not limited to, for example, measurement or simulation. If measurement is used, the measurement itself may be performed before the collaborative control process is executed, and in step S4, the calculation unit 12 may calculate the time required for each process using the measurement results. Alternatively, the calculation unit 12 may also calculate the time required for each process in the first arithmetic unit 1 when calculating the required time in step S2.

[0042] Returning to the explanation of Figure 4, after step S4, the first calculation unit 1 determines whether the estimated arrival time is less than or equal to the required time of the corresponding preceding process (step S5). Specifically, the determination unit 13 determines whether the estimated arrival time is less than or equal to the required time of the corresponding preceding process by comparing the estimated arrival time received from the calculation unit 12 with the required time of the corresponding preceding process included in the required time information stored in the storage unit 14. If the estimated arrival time is not less than or equal to the required time of the corresponding preceding process (step S5 No), the first calculation unit 1 repeats step S5.

[0043] When the estimated arrival time becomes equal to or less than the required time of the corresponding preceding process (Step S5 Yes), the first arithmetic unit 1 transmits a process start request to the second arithmetic unit 2 (Step S6). Specifically, the determination unit 13 instructs the control processing unit 11 to generate instruction information indicating a request for starting the preceding process, the control processing unit 11 generates the instruction information based on the instruction, and transmits the generated instruction information via the transceiving unit 15 to the second arithmetic unit 2 that executes the preceding process.

[0044] The first arithmetic unit 1 determines whether to end the cooperative control process (Step S7), and when it is determined to end (Step S7 Yes), the process is terminated. Specifically, in Step S7, the control processing unit 11 determines whether to end the cooperative control process based on the reference schedule. When it is determined not to end the cooperative control process (Step S7 No), the first arithmetic unit 1 executes the processes from Step S4 again.

[0045] As described above, assuming that in the cooperation target process, the preceding process is defined as the first process and the subsequent process is defined as the second process, the plurality of control processes constituting the cooperative control process include the first process executed by the second arithmetic unit 2, and the second process which is a control process executed by the first arithmetic unit 1 when a condition related to the result of the first process is satisfied. The calculation unit 12 calculates, as the required time of the first process, the time from when the start request for the first process is instructed to the second arithmetic unit 2 until the above condition is satisfied. The determination unit 13 uses the estimated arrival time until the first arithmetic unit 1 starts executing the second process and the required time of the first process calculated by the calculation unit 12 to determine the instruction timing of the start request for the first process, so as to instruct the start request for the first process to the second arithmetic unit 2 that executes the first process, such that the above condition is satisfied.

[0046] Through the above process, when the estimated arrival time becomes less than or equal to the time required for the corresponding preceding process, that is, for example, when the estimated arrival time becomes equal to the time required for the corresponding preceding process, instruction information requesting the start of the preceding process is sent to the second calculation unit 2 which executes the preceding process. Therefore, from a specific state, instruction information requesting the start of the preceding process is sent to the second calculation unit 2 at a time before the time required for the preceding process. The time required for the preceding process is the actual time required, estimated by measurement, simulation, etc. This makes it possible to suppress processing waiting time and improve the throughput of collaborative control processing.

[0047] In the example shown in Figure 4, the first calculation unit 1 calculates the estimated arrival time using the time required for processing by the first calculation unit 1. However, if the time at which the processing of the first calculation unit 1 reaches a specific state is determined by a reference schedule, the estimated arrival time can be the time from the current time to that time. For example, suppose the reference schedule determines the time at which processing corresponding to a specific state begins based on the elapsed time from the start of the collaborative control processing, i.e., the time at which processing corresponding to a specific state begins is determined. In this case, the calculation unit 12 or the determination unit 13 may calculate the estimated arrival time as the difference between the elapsed time from the start of the collaborative control processing and the start time of processing corresponding to the specific state in the reference schedule. Alternatively, if the start time of processing corresponding to a specific state in the reference schedule is determined by a specific time (absolute time), the calculation unit 12 or the determination unit 13 may calculate the estimated arrival time based on the current time and the start time of processing corresponding to the specific state in the reference schedule.

[0048] Note that FIG. 4 is merely an example, and it is sufficient that equivalent operations can be implemented, and the order of each step and the specific processing content are not limited to the example shown in FIG. 4. For example, in FIG. 4, the determination unit 13 determines the timing of the instruction to the second arithmetic unit 2 by sequentially comparing the estimated arrival time with the required time of the corresponding preceding process, but the present invention is not limited to this. The determination unit 13 may obtain the timing to transmit the instruction information, that is, the instruction timing, by subtracting the required time of the corresponding preceding process from the estimated arrival time, and execute step S6 when the instruction timing is reached. As described above, the content of the instruction information transmitted to the second arithmetic unit 2 is not limited to a processing start request, and may include designation of the execution start time and the processing to be executed, such as starting the processing after Q seconds. In this case, the determination unit 13 shifts the timing for transmitting the instruction information by Q seconds earlier than in the example shown in FIG. 4.

[0049] Next, the hardware configuration of the control system 4 according to the present embodiment will be described. FIG. 7 is a diagram showing a first example of the hardware configuration of the control system 4 according to the present embodiment. In the first example shown in FIG. 7, the control system 4 is provided across both the range corresponding to OT (Operational Technology), which is a closed technology such as in a factory, and the range of IT (Information Technology), which is a more general technology than OT. In the example shown in FIG. 7, a numerical control (NC) device 200 is the first arithmetic unit 1, and an NC device 201, controllers 202 and 203, and an external device 40 are the second arithmetic unit 2. The NC device 201 controls a machine tool 301, the controller 202 controls a robot 302, the controller 203 controls a transport device 303, and the NC device 200 controls a machine tool 304. Each of the machine tools 301 and 304, the robot 302, and the transport device 303 is a control target 3. Hereinafter, the range corresponding to OT is also simply referred to as OT, and the range corresponding to IT is also simply referred to as IT.

[0050] For example, the NC devices 200, 201, controllers 202, 203, machine tools 301, 304, robot 302, and transport device 303 are installed within the factory, and the external device 40 is installed on an external cloud, but is not limited to this. The NC device 200 includes an ASIC (Application Specific Integrated Circuit) 100, which is a processing circuit, and the ASIC 100 includes a CPU (Central Processing Unit) 101 and memory 102. The NC device 200 may also have memory outside of the ASIC 100. The ASIC 100 is an example of a computer system that includes a CPU 101. The NC devices 201 and controllers 202, 203 also include ASICs in a similar manner.

[0051] The external device 40 can communicate with the NC device 200 via a network such as the Internet. The external device 40 is a computer system equipped with a CPU and memory, and may be implemented by multiple computer systems such as a cloud. When using only OT, that is, when using only dedicated equipment such as a factory where the controlled object 3 is installed, it is necessary to prepare dedicated equipment when increasing the processing load or the amount of data to be stored. As illustrated in Figure 7, by using the external device 40 with external resources, the external device 40 can be made to perform computationally intensive calculations, store large amounts of data, etc.

[0052] In the example shown in Figure 7, the NC device 200 on the OT acts as the first calculation unit 1, controlling the NC device 201, controllers 202 and 203 on the OT, and the external device 40 in the IT by transmitting instruction information to them. Thus, the first calculation unit 1 and the second calculation unit 2 may each be implemented by separate devices. In the example shown in Figure 7, data exchange between the first calculation unit 1 and the second calculation unit 2 is performed by communication between the devices, so the transmission time will be affected by the communication environment. In particular, the transmission time between the first calculation unit 1 and the external device 40 may be long depending on the communication environment, and it is important to consider the transmission time when calculating the processing time.

[0053] In the NC device 200, for example, a program that implements the functions of the first arithmetic unit 1 of this embodiment is stored in memory 102 or memory outside the ASIC 100, and the CPU 101 stores this program in the main memory area of ​​memory 102. In this state, the CPU 101 executes processing as the first arithmetic unit 1 of this embodiment according to the program stored in the main memory area. The same applies to the NC device 201 and controllers 202 and 203. The program (program product) may be provided on a recording medium or on a transmission medium such as the Internet. Similarly, the external device 40 executes processing as the second arithmetic unit 2 by having the CPU in the computer system execute the program.

[0054] Figure 8 shows a second example of the hardware configuration of the control system 4 in this embodiment. In the example shown in Figure 8, the NC device 200 is equipped with two ASICs, ASIC 100-1 and 100-2. ASIC 100-1 is equipped with two CPUs 101-1 and 101-2, of which one CPU 101-1 is the first arithmetic unit 1 and the other CPU 101-2 is the second arithmetic unit 2-5. ASIC 100-2 is equipped with CPU 101, which is the second arithmetic unit 2-5. Note that the memory is not shown in Figure 8. The NC device 201, controllers 202 and 203, external device 40, machine tools 301 and 304, robot 302 and transport device 303 are the same as in the example shown in Figure 7.

[0055] In the example shown in Figure 8, multiple CPUs are provided within the ASIC 100-1, with one CPU acting as the first arithmetic unit 1 and the other CPUs acting as the second arithmetic unit 2. In this way, the first arithmetic unit 1 and the second arithmetic unit 2 may be provided within a single device. When the first arithmetic unit 1 and the second arithmetic unit 2 are provided within a single device, the transmission time of the processing time is the transmission time in the electrical connection path between the first arithmetic unit 1 and the second arithmetic unit 2.

[0056] Figure 9 shows a third example of the hardware configuration of the control system 4 in this embodiment. In the example shown in Figure 9, the NC device 200 is equipped with two ASICs, ASIC 100-1 and 100-2. Each of ASIC 100-1 and 100-2 is equipped with two CPUs. Each CPU is equipped with two cores. In the example shown in Figure 9, one core 103-1 in CPU 101-1 of ASIC 100-1 is the first arithmetic unit 1, and the other core 103-2 is the second arithmetic unit 2-5. Also, one core 103-3 in CPU 102-2 of ASIC 100-1 is the second arithmetic unit 2-6, and one core 103-4 in CPU 101-1 of ASIC 100-2 is the second arithmetic unit 2-7. Note that the memory is not shown in Figure 8. The NC device 201, controllers 202 and 203, external device 40, machine tools 301 and 304, robot 302, and transport device 303 are the same as in the example shown in Figure 7.

[0057] In the example shown in Figure 9, the NC device 200 is provided with a first arithmetic unit 1 and a second arithmetic unit 2 on a per-core basis within the CPU. Although Figure 9 shows an example where three of the cores in the NC device 200 become the second arithmetic unit 2, the system is not limited to this example. All of the cores in the NC device 200 that do not become the first arithmetic unit 1 may become the second arithmetic unit 2, and the cores that function as the first arithmetic unit 1 and the second arithmetic unit 2 are not limited to the example shown in Figure 9. Thus, the first arithmetic unit 1 and the second arithmetic unit 2 may be provided on a per-core basis.

[0058] In the examples shown in Figures 7 to 9, the control system 4 is provided across both OT and I and T, but it is not limited to this, and the control system 4 may be provided in only one of OT or IT. Also, Figures 7 to 9 are illustrative examples, and the types and number of devices constituting the control system 4 are not limited to these examples. Furthermore, in the examples shown in Figures 7 to 9, an ASIC 100 is shown as being used in the device in OT, but it is not limited to this, and a general-purpose CPU and memory may be used, or an FPGA (Field Programmable Gate Array) may be used, or these may be used in combination.

[0059] As described above, in this embodiment, in a control system 4 in which a first calculation unit 1 and a second calculation unit 2 perform cooperative control processing, the first calculation unit 1 calculates the time required for the processing to be performed by the second calculation unit 2, and uses this time to determine the content and timing of instructions to the second calculation unit 2 so that the cooperative control processing is executed according to a preset standard schedule. As a result, the control system 4 of this embodiment can suppress the occurrence of waiting time and improve the throughput of the cooperative control processing.

[0060] Embodiment 2. Figure 10 shows an example of the configuration of the control system 4 in Embodiment 2. In the example shown in Figure 10, the external device 40 is the first calculation unit 1, and the NC device 201, controllers 202 and 203 are the second calculation unit 2. The NC device 201, controllers 202 and 203, machine tool 301, robot 302, and transport device 303 are the same as in the example shown in Figure 7 of Embodiment 1. For components that have the same functions as in Embodiment 1, redundant explanations will be omitted, and the differences from Embodiment 1 will be mainly described below.

[0061] The external device 40 is provided, for example, in the cloud, similar to the external device 40 shown in Figure 7 of Embodiment 1. In this way, the external device 40 may operate as the first calculation unit 1 to control the NC device 201, controllers 202, and 203. Also, Figure 10 is illustrative, and the types and number of devices constituting the control system 4 are not limited to these examples.

[0062] Embodiment 3. Figure 11 shows an example configuration of the control system 4 in Embodiment 3. In the example shown in Figure 11, the control system 4 comprises a first calculation unit 1, second calculation units 2-1 to 2-3, and a second calculation unit 2-4 which is an external device utilizing external resources. The first calculation unit 1 and the second calculation unit 2-4 can communicate via a network 5. The second calculation units 2-1 to 2-3 may also communicate with the second calculation unit 2-4 via the network 5. The second calculation units 2-1 to 2-3 each control the control targets 3-1 to 3-3, and the first calculation unit 1 controls the control target 3-4. Note that the second calculation units 2-1 to 2-4 are each the second calculation unit 2 of Embodiment 1, and the control targets 3-1 to 3-4 are the control targets 3 of Embodiment 1. The number of second calculation units 2 is not limited to the example shown in Figure 11. For components having the same functions as in Embodiment 1, redundant explanations will be omitted, and the following will mainly describe the differences from Embodiment 1.

[0063] In this embodiment, similar to the example shown in Figure 7 of Embodiment 1, the first calculation unit 1 is an NC device. The first calculation unit 1 calculates the time required for the processing to be executed by the second calculation unit 2, similar to the first calculation unit 1 in Embodiment 1, and uses the time required to determine the content and timing of instructions to the second calculation unit 2 so that the collaborative control processing is executed according to a preset reference schedule. In this embodiment, the reference schedule is a machining program stored in the first calculation unit 1, which is an NC device, and the control processing unit 11 executes this machining program. In this embodiment, related information is included in the machining program. In other words, related information is obtained from the machining program. Also, the first calculation unit 1 and the second calculation units 2-1 to 2-3 may include a PLC. The machining program is an NC program in which commands are described using, for example, S-code, M-code, G-code, etc.

[0064] In the example shown in Figure 11, the second calculation unit 2-4 stores, for example, a machine model, tool data, variables, NC parameters, machining programs, PLC device data, etc., in the storage unit 23. The machine model is the machine model of the controlled object 3, the tool data is data related to the tools used for machining, and the variables are common variables, etc., used in the machining program of the NC device, which is the first calculation unit 1 or the second calculation unit 2. The NC parameters are the NC parameters set by each NC device, and the PLC device data is data stored in the device memory of the PLC. In this way, the second calculation unit 2-4 is capable of storing various data, and for example, it may store data collected from at least one of the first calculation unit 1 and the second calculation units 2-1 to 2-3, or it may store data that can be referenced by multiple calculation units in the OT, such as common variables. For example, subprograms, macro programs provided by machine manufacturers, fixed cycles, etc., may be stored in the storage unit 23 of the second arithmetic unit 2-4, and these may be called from the arithmetic unit in the OT using M98 commands, etc. Note that Figure 11 is an example, and the data stored in the storage unit 23 of the second arithmetic unit 2-4 is not limited to this example.

[0065] Furthermore, the second calculation unit 2-4 stores the digital machine of the control system 4 in the storage unit 23, and the control processing unit 22 of the second calculation unit 2-4 may use the digital machine and the machining program to perform interpolation processing slightly ahead of the first calculation unit 1 on the OT during the operation of the control system 4. The digital machine includes, for example, the machine model of the controlled object 3, variables, the state of the PLC device, etc. For example, the control processing unit 22 of the second calculation unit 2-4 may perform interpolation processing a predetermined time ahead of the first calculation unit 1. The predetermined time is, for example, a time corresponding to a position of several tens of millimeters, and can be determined by simulation so as not to cause a collision between the workpiece (the object to be machined) and the tool. The predetermined time is not limited to this.

[0066] Furthermore, the second calculation unit 2-4 may predict the vibration of the controlled object 3 using the detection results of vibration-detecting sensors such as acceleration sensors provided on the controlled object 3, along with a digital machine and a processing program. The control processing unit 22 of the second calculation unit 2-4 may instruct the first calculation unit 1 via the transmitting / receiving unit 21 to limit the corner deceleration speed or override at locations in the controlled object 3 where it has determined that the mechanical vibration is stronger than a certain threshold. Alternatively, the control processing unit 22 of the second calculation unit 2-4 may notify the first calculation unit 1 of the prediction results via the transmitting / receiving unit 21, and the first calculation unit 1 may control the controlled object 3 in accordance with this notification to limit the corner deceleration speed or override. In this way, the second calculation unit 2-4 may perform a simulation using a digital machine, and the first calculation unit 1 may perform control based on the simulation results.

[0067] Furthermore, the control processing unit 22 of the second calculation unit 2-4 may perform a simulation using a digital machine during machining, estimate the amount of machine deflection due to axis movement, perform a correction amount to correct the deflection, and notify the first calculation unit 1 of the correction result via the transmission / reception unit 21. In other words, the second calculation unit 2-4 may perform a correction process for the machining program by analyzing the machining program.

[0068] For example, before the first calculation unit 1 reaches a specific state, the second calculation unit 2-4 may perform preliminary processing, and the first calculation unit 1 may use the results of the preliminary processing in the processing of the block corresponding to the specific state. For example, the preliminary processing performed by the second calculation unit 2-4 includes at least one of the following: processing to predict the vibration of the controlled object 3 using the digital machine of the controlled object 3 and the detection results of a sensor that detects the vibration of the controlled object 3; processing to predict the presence or absence of mechanical interference using the processing program and the digital machine; and processing to correct the processing program by analyzing the processing program.

[0069] The first calculation unit 1 sends a request to the second calculation unit 2-4 to check the endpoint position each time a block (row) in the currently executing machining program progresses. The control processing unit 22 of the second calculation unit 2-4 may then perform interference checks by performing simulations using a digital machine based on the notified endpoint position. In this way, the second calculation unit 2-4 may perform anomaly detection processing and notify the first calculation unit 1 of the results of the anomaly detection processing.

[0070] Furthermore, the control processing unit 22 of the second calculation unit 2-4 may recognize the "machined surface" from the entire machining program in the control system 4, perform processing to modify the machining path so that the machined surface becomes smooth, notify the first calculation unit 1 of the processing result, and the first calculation unit 1 may reflect the processing result.

[0071] Furthermore, the control processing unit 22 of the second calculation unit 2-4 may be capable of executing processing based on programs created in other languages, such as Python, in addition to processing according to the machining program using G-code. This makes it possible to execute complex processing that would be difficult to achieve with G-code alone. Note that the processing executed by the control processing unit 22 of the second calculation unit 2-4 is not limited to the examples described above.

[0072] In this embodiment, the reference schedule is a machining program, and the first calculation unit 1 calculates the time required for the processing to be performed by the second calculation unit 2, as described in Embodiment 1, and uses the time required to determine the content and timing of instructions to the second calculation unit 2 so that the collaborative control processing is performed according to the machining program. For example, the first calculation unit 1 may need to cooperate with the second calculation unit 2-4, such as when the second calculation unit 2-4 simulates operations ahead of the operations actually performed in the OT during machining, and the first calculation unit 1 reflects the simulation results in the control of the controlled object 3, or when the first calculation unit 1 performs processing using data stored in the second calculation unit 2-4. In such cases, the first calculation unit 1, similar to Embodiment 1, designates the processing performed by the second calculation unit 2-4 as a preceding process, and the processing performed by the first calculation unit 1 using the results of the preceding process as a succeeding process, and uses the time required for the preceding process to determine the timing of the start of the preceding process performed by the second calculation unit 2-4.

[0073] Figure 12 shows an example of a machining program according to this embodiment. The machining program 500 is stored in the storage unit 14, and the control processing unit 11 executes the machining program 500. In the example shown in Figure 12, the starting point of a specific block 504 is a specific state, and interpolation processing is performed by the second calculation unit 2-4 before the execution of the specific block 504 begins, and the result of the interpolation processing is reflected in the execution of the specific block 504. Therefore, the processing corresponding to the specific block 504 and the interpolation processing of the second calculation unit 2-4 constitute a pair of linked processing, with the second calculation unit 2-4 being the preceding processing and the processing corresponding to the specific block 504 being the succeeding processing. Each block in the block group 501 in the machining program 500 corresponds to a processing other than the linked processing. Block 503 corresponds to the current processing, that is, the processing currently being executed.

[0074] The calculation unit 12 reads a predetermined look-ahead range 502 before the control processing unit 11 of the first calculation unit 1 executes it. Look-ahead means reading in advance the part that will be executed after the current execution location. In the example shown in Figure 12, since block 503 corresponds to the current process, the calculation unit 12 has already read the look-ahead range 502 at this point. In Figure 12, as shown to the right of the machining program 500, the processes corresponding to each block of the look-ahead range 502 correspond to processes A to E illustrated in Figures 2 and 6 of Embodiment 1, and process X corresponds to the interpolation process in the second calculation unit 2-4. The first calculation unit 1 calculates the required time and estimated arrival time of the preceding process, similar to the first calculation unit 1 of Embodiment 1, and when the estimated arrival time becomes less than or equal to the required time of the preceding process, it sends instruction information to the second calculation unit 2-4 indicating a request to start the storage process. Furthermore, the calculation unit 12 calculates the time required for interpolation processing based on the linked processing information, similar to Embodiment 1, and also determines each process to be executed up to the specific state based on the look-ahead range 502, and calculates the time required for each process, thereby calculating the estimated time to reach the specific state, similar to Embodiment 1.

[0075] Through the above processing, the first calculation unit 1 of this embodiment can determine the content and timing of instructions to the second calculation unit 2 so that the collaborative control processing is executed according to the machining program 500. As a result, the control system 4 of this embodiment can suppress the occurrence of waiting time and improve the throughput of the collaborative control processing.

[0076] In the example shown in Figure 11, the second calculation unit 2-4 on the IT side was used as an example for explanation, but similarly, the first calculation unit 1 may also use the machining program as the base schedule for the second calculation unit 2 on the OT side.

[0077] Embodiment 4. Figure 13 shows an example of a standard schedule for Embodiment 4. The control system 4 of this embodiment comprises a first calculation unit 1 and second calculation units 2-1 to 2-3. The first calculation unit 1 is an external device 40, similar to Embodiment 2. That is, in this embodiment, the first calculation unit 1 is an external device 40 that is not equipment specifically provided for the control of the controlled object 3. Explanations of components having the same functions as in Embodiment 1 will be omitted to avoid repetition, and the following will mainly describe the differences from Embodiment 1.

[0078] In the example shown in Figure 13, the second calculation unit 2-1 controls the robot 306, the second calculation unit 2-2 controls the machine tool 307, and the second calculation unit 2-3 controls the transport robot 308. The second calculation units 2-1 to 2-3 are the second calculation unit 2 described in Embodiment 1. The robot 306, machine tool 307, and transport robot 308 are examples of the controlled object 3 described in Embodiment 1.

[0079] In the example shown in Figure 13, robot 306 performs load and unload operations, which are the tasks of removing and installing workpieces. Specifically, machine tool 307 unlocks its door, robot 306, for example, removes a workpiece from the workpiece stocker, opens the door of machine tool 307, loads the workpiece into machine tool 307, and closes the door of machine tool 307. Once robot 306 closes the door, it locks the door and performs processing on the workpiece, such as removal, addition, or deformation. Once machine tool 307 has completed the processing, it unlocks the door again. To transport the workpiece processed by machine tool 307, transport robot 308 arrives near machine tool 307 before processing is completed and the door is unlocked, unloads the workpiece from machine tool 307, and loads the workpiece. Then, transport robot 308 transports the workpiece to a designated location, such as a conveyor belt. The robot 306, the machine tool 307, and the transport robot 308 work together in this manner, repeating this series of operations. The control of this series of collaborative operations corresponds to the collaborative control processing described in Embodiment 1, performed by the first calculation unit 1 and the second calculation units 2-1 to 2-3. In this embodiment, the collaborative control processing performed by the first calculation unit 1 is the control of the operations of the second calculation units 2-1 to 2-3.

[0080] In this embodiment, the reference schedule defines the order of events, such as taking out a workpiece and opening a door, as shown in Figure 13. The reference schedule describes the events related to the controlled object 3 in the order in which they occur. In this embodiment, related information is included in the reference schedule. In other words, related information is obtained from the reference schedule. Furthermore, a relative or absolute time may be defined in the reference schedule for at least one of the events. Although Figure 13 only shows an overview of the events, the reference schedule may also include information indicating the content of the control performed by the second calculation unit 2 to cause the controlled object 3 to execute this operation. For example, it may include control commands to the controlled object 3. Alternatively, the second calculation unit 2 may hold the content of the control according to the type of event, and the first calculation unit 1 may specify the type of event, allowing the second calculation unit 2 to identify the control content corresponding to that event and perform the control.

[0081] For example, if the transport robot 308 arrives too early, before the door of the machine tool 307 is unlocked, the door will not be unlocked and a waiting time will occur. On the other hand, if the robot 306 arrives at the machine tool 307 too late after the door has been unlocked, it will not be able to load the next workpiece into the machine tool 307, resulting in a waiting time. Thus, some of these processes include tasks in which throughput can be improved by coordinating the timing of these processes. For this reason, the first calculation unit 1 controls the timing of instructions to each of the second calculation units 2-1 to 2-3, for example, so that the end of the preceding process coincides with the start of the subsequent process, treating these processes as coordinated processes.

[0082] Furthermore, even when the first arithmetic unit 1 is provided on the OT, the collaborative control process may be controlled in accordance with the standard schedule illustrated in Figure 13.

[0083] Furthermore, the determination unit 13 of the first calculation unit 1 may instruct the second calculation unit 2 to correct the control content according to the progress of the processing executed by the second calculation unit 2. For example, the second calculation unit 2 periodically transmits progress information indicating the progress of an event currently being executed to the first calculation unit 1. The progress is represented, for example, by a value related to progress (hereinafter also called a progress indicator), and the progress information includes the progress indicator. The progress of the processing executed by the second calculation unit 2 includes the progress of the operations performed by the controlled object 3 controlled by the second calculation unit 2. When the difference between the target value of progress based on the first schedule and the progress indicated by the progress information exceeds a threshold, the determination unit 13 transmits correction information to the second calculation unit 2 via the transmission / reception unit 15, instructing it to correct the control content related to the corresponding event.

[0084] For example, if the event in the first schedule is an event in which the controlled object 3 moves from position P1 to position P2, the progress information may be information indicating the position of the controlled object 3 at that time, or it may be information indicating the progress rate, with completion of the movement to position P2 being considered as 100%. The position of the controlled object 3 is detected, for example, by a sensor provided on the controlled object 3, and the second calculation unit 2 acquires the detection result from the sensor. The control processing unit 22 of the second calculation unit 2 generates progress information based on the detection result from the sensor and transmits the generated progress information to the first calculation unit 1 via the transmitting / receiving unit 21. The information indicating the position of the controlled object 3 may be the amount of movement since the start of movement, or it may be information indicating the position of the controlled object 3 itself. If the progress is behind schedule, the determination unit 13 of the first calculation unit 1 may, for example, transmit correction information to the second calculation unit 2 via the transmitting / receiving unit 15, instructing the speed of the operation of the controlled object 3 to be increased. If this correction changes the time required for an event, and the time for each event is defined in the base schedule, the first calculation unit 1 will modify the base schedule accordingly.

[0085] Furthermore, progress information may also include information indicating how many objects the controlled object 3 has placed, for example, if the event in the first schedule is an event where the controlled object 3 places N objects. Progress information is not limited to the above example, and any information that shows the progress according to the content of the event is acceptable.

[0086] Furthermore, for example, in a configuration where there is a possibility of interference (mechanical interference) between the controlled objects 3, the second calculation unit 2 may determine whether or not interference is likely to occur with other controlled objects 3 based on the detection results of sensors mounted on the controlled objects 3, and transmit the determination result to the first calculation unit 1. For example, the second calculation unit 2 may determine that interference occurs when the distance between the controlled object 3 it controls and another controlled object 3 falls below a threshold. Based on this determination result, the decision unit 13 of the first calculation unit 1 may generate correction information to avoid mechanical interference between the controlled objects 3, and transmit the correction information to the second calculation unit 2 via the transmission / reception unit 15. If this correction changes the time required for an event, and the time of each event is defined in the reference schedule, the first calculation unit 1 will modify the reference schedule according to the change.

[0087] Furthermore, the standard schedule may be changed depending on the circumstances. For example, as described in Embodiment 1, the second calculation unit 2 basically operates based on instruction information from the first calculation unit 1, but it may be capable of autonomous operation when certain conditions are met. For example, the second calculation unit 2 may perform predetermined abnormality response control when it detects an abnormality. Specifically, if, based on the detection results of a sensor mounted on the control target 3 (not shown), the distance between the control target 3 and at least one of other control targets 3, people, and objects falls below a threshold and interference is predicted to occur, the control target 3 may be emergency stopped. Also, if a vibration with an amplitude exceeding a threshold is detected based on a sensor mounted on the control target 3, the control target 3 may be emergency stopped. The abnormality detection method and abnormality response control are not limited to these examples.

[0088] Figure 14 is a sequence diagram showing an example of the operation when an anomaly is detected in the control system 4 of this embodiment. The first calculation unit 1 starts control based on the first schedule, which is a reference schedule (step S11). Specifically, the first calculation unit 1 transmits instruction information to the second calculation unit 2 based on the first schedule, similar to embodiment 4. When the control processing unit 22 of the second calculation unit 2 detects an anomaly in the controlled object 3 (step S12), it performs anomaly response control (step S13). The control processing unit 22 of the second calculation unit 2 transmits a control switching notification to the first calculation unit 1 via the transmitting / receiving unit 21, indicating that it has switched from control based on instruction information from the first calculation unit 1 to anomaly response control (step S14).

[0089] The first arithmetic unit 1 stores the first schedule in the storage unit 14, and also stores a second schedule, which is a reference schedule different from the first schedule. The second schedule is created in advance in preparation for when an anomaly response control occurs. For example, the second schedule may be created depending on which event in the first schedule triggers the anomaly response control. For example, the second schedule is created for each event, i.e., for each event in which anomaly response control occurs, taking into account the time required for the anomaly response control and also considering which event to restart from. Note that the method of creating the second schedule is not limited to this example.

[0090] When the determination unit 13 of the first calculation unit 1 receives a control switching notification from the second calculation unit 2 via the transmission / reception unit 15, it selects a second schedule corresponding to the event corresponding to the control switching notification, determines the scheduled application time of the second schedule, and transmits the scheduled application time of the second schedule to the second calculation unit 2 (step S15). In this way, the first calculation unit 1 may update the reference schedule when it receives a control switching notification from the second calculation unit 2. The scheduled application time may be a predetermined time in advance after receiving the control switching notification. The predetermined time may be determined according to the event in which abnormal response control was implemented. When the scheduled application time of the second schedule arrives, the first calculation unit 1 starts cooperative control processing based on the second schedule (step S16). In this way, the first calculation unit 1 may update the reference schedule by using a predetermined second schedule, which is different from the first schedule, as the reference schedule. Furthermore, the determination unit 13 of the first calculation unit 1 may transmit the scheduled application time of the second schedule not only to the second calculation unit 2 that detected the anomaly, but also to other second calculation units 2. Furthermore, when the anomaly response control is completed, the second calculation unit 2 may notify the first calculation unit 1 of the completion of the anomaly response control. In this case, the first calculation unit 1 may determine the scheduled application time of the second schedule after receiving notification of the completion of the anomaly response control.

[0091] Furthermore, in the example shown in Figure 14, the first calculation unit 1 transmits the scheduled application time of the second schedule to the second calculation unit 2, but this operation is not required. When the first calculation unit 1 transmits the scheduled application time of the second schedule to the second calculation unit 2, if the second calculation unit 2 requires preparatory operations to perform operations based on the second schedule, these preparatory operations can be performed before the scheduled application time of the second schedule.

[0092] In the example above, the second calculation unit 2 detected an abnormality, but the second calculation unit 2 is not limited to this; abnormality detection may also occur in response to operator intervention, i.e., detection of operator operation. For example, the second calculation unit 2 may determine that an abnormality has been detected when it detects that an operator has operated an operating means such as an emergency stop button (not shown), and may perform an emergency stop of the controlled object 3 as an abnormality response control. For example, if an operator determines that the controlled object 3 is about to come into contact with a person or object, or determines that the controlled object 3 is abnormal, they can perform an emergency stop of the controlled object 3 by operating the operating means. Alternatively, the second calculation unit 2 may determine that an abnormality has been detected when it detects that an operator has performed a manual operation switch operation using an operating means (not shown) capable of receiving an instruction to switch the control of the controlled object 3 to manual operation. This operating means can also accept input of the control content of the controlled object 3, and thereafter, manual operation is performed by the operator. For example, if the operator determines that the controlled object 3 is about to come into contact with a person or object, or if the operator determines that the controlled object 3 is abnormal, they can switch to manual operation by operating the operating means. When the manual operation is finished, the operator uses the operating means to perform an operation to end the manual operation, and the second calculation unit 2 detects the end of the manual operation. In this example, manual operation is abnormal response control. When switching to manual operation is performed, the second calculation unit 2 notifies the first calculation unit 1 of the end of manual operation, i.e., the end of abnormal response control.

[0093] Figure 14 illustrates an example in which a second schedule is created in advance, and the base schedule is updated by selecting the second schedule from the already created second schedules. However, the second schedule may be newly created during the execution of the collaborative control process as needed. For example, the first calculation unit 1 may create a new second schedule based on the progress of the process performed by the second calculation unit 2, if the deviation between the progress status and the target progress value based on the first schedule becomes large.

[0094] Figure 15 is a sequence diagram showing an example of the update operation of the reference schedule based on the progress status in the control system 4 of this embodiment. Step S21 is the same as step S11 shown in Figure 14. The second calculation unit 2 periodically transmits progress information indicating the progress status to the first calculation unit 1 (step S22).

[0095] The decision unit 13 of the first calculation unit 1 determines, based on the progress information received via the transmission / reception unit 15, that the progress has deviated from the target value (step S23), and then creates a second schedule (step S24). For example, the decision unit 13 compares the target value related to the operation of the controlled object 3, which is defined as an event in the first schedule, with the progress value indicated by the progress information, and determines that the progress has deviated from the target value if the difference between the target value and the progress value exceeds a threshold. The decision unit 13 then creates a second schedule that takes into account the difference between the target value and the progress value. Specifically, for example, the decision unit 13 may create a second schedule that is shifted from the first schedule by the difference between the target value and the progress value. Alternatively, for example, the decision unit 13 may create a second schedule by optimizing it again based on the remaining work at that point in time. Furthermore, if there are multiple candidate movement paths for a moving control object 3, such as a transport robot 308, a second schedule may be created by re-selecting a path from among the multiple candidate paths. The method for creating the second schedule is not limited to these examples.

[0096] Steps S25 and S26 are the same as steps S15 and S16 shown in Figure 14. In this way, the first calculation unit 1 may create a second schedule different from the first schedule and update the base schedule by using the second schedule as the base schedule. In Figure 15, step S25 is performed after step S24, but this is not limited to this, and step S25 may be performed before step S24. For example, the decision unit 13 may predict the creation time of the second schedule, determine the time after the predicted creation time has elapsed as the scheduled application time, and notify the second calculation unit 2 of the determined scheduled application time via the transmission / reception unit 15 before step S24.

[0097] As described above, if progress deviates from the target value, the baseline schedule can be updated by creating a second schedule. This ensures that even if the operation of controlled object 3 is delayed for some reason, the efficient coordination of the linked processes can be maintained.

[0098] Furthermore, although Figure 15 shows the second calculation unit 2 periodically transmitting progress information, the system is not limited to this configuration. The control processing unit 22 of the second calculation unit 2 may determine whether the progress has deviated from the target value, and if the progress has deviated from the target value, it may notify the first calculation unit 1 via the transmission / reception unit 21 that the progress is behind schedule. In step S23, the first calculation unit 1 may receive this notification, determine that the progress has deviated from the target value, and proceed from step S24 onward.

[0099] In the example shown in Figure 14, the first calculation unit 1 uses a pre-created second schedule when the second calculation unit 2 receives notification of a control switch. However, the system is not limited to this, and the second schedule may not be created in advance but may be newly created as in the example shown in Figure 15. Also, in the example shown in Figure 15, the first calculation unit 1 creates a new second schedule in step S24. However, the system is not limited to this, and multiple second schedules corresponding to several anticipated situations may be created in advance, and the second schedule to be applied may be selected from the multiple second schedules in step S24. Figures 14 and 15 are illustrative examples, and the specific procedure for updating the reference schedule is not limited to these examples.

[0100] Furthermore, the first calculation unit 1 may, using the requirement information indicating the quality or accuracy requirement for the controlled object 3 and the predicted result of the quality or accuracy of the controlled object 3 in the reference schedule, and if it determines that the predicted result does not meet the requirement, transmit correction information indicating the correction content to make the requirement meet when instructing the start of the corresponding event for the controlled object 3. Note that accuracy refers to, for example, the accuracy of the trajectory of the interpolated data relative to the program command trajectory, but is not limited to this. Quality refers to, for example, surface quality. These indicate how well the controlled object 3 is following the control command corresponding to each event. Correction information includes, for example, correction amounts related to time and position, velocity clamp (correction amount related to velocity), and correction amounts related to acceleration. The prediction of the quality or accuracy of the controlled object 3 is performed, for example, by the first calculation unit 1 based on a simulation according to the reference schedule, but is not limited to this.

[0101] The configurations shown in the above embodiments are merely examples, and it is possible to combine them with other known technologies, combine different embodiments, and omit or modify parts of the configuration without departing from the gist of the invention.

[0102] 1 First calculation unit, 2, 2-1, 2-2, 2-3, 2-4, 2-5 Second calculation unit, 3, 3-1 to 3-4 Control target, 4 Control system, 5 Network, 11, 22 Control processing unit, 12 Calculation unit, 13 Determination unit, 14, 23 Storage unit, 15, 21 Transmit / receive unit, 40 External device, 100, 100-1, 100-2 ASIC, 101, 101-1, 101-2 CPU, 102 Memory, 103-1 to 103-4 Core, 200, 201 NC device, 202, 203 Controller, 301, 304, 307 Machine tool, 302, 306 Robot, 303 Transfer device, 308 Transfer robot, 500 Machining program, 501 Block group, 502 Look-ahead range, 503 Block, 504 Specific Block.

Claims

1. A control system for controlling one or more controlled objects, comprising: a first calculation unit; and one or more second calculation units that perform collaborative control processing in cooperation with the first calculation unit to control a controlled object, wherein the collaborative control processing includes a plurality of control processing; and the first calculation unit comprises: a calculation unit that calculates the time required for the control processing to be performed by the one or more second calculation units; and a determination unit that determines the content and timing of instructions for the one or more second calculation units to perform the collaborative control processing based on the calculated time required and related information indicating the relationship between the control processing.

2. The control system according to claim 1, wherein the plurality of control processes include a first process which is the control process executed by the second calculation unit, and a second process which is the control process executed by the first calculation unit when a condition relating to the result of the first process is met, the calculation unit calculates the time from when it instructs the second calculation unit to start the first process until the condition is met as the required time of the first process, and the determination unit determines the timing of the instruction for the start of the first process to instruct the second calculation unit to start the first process to execute the first process, using the estimated time until the first calculation unit starts executing the second process and the required time of the first process calculated by the calculation unit, so as to satisfy the condition.

3. The control system according to claim 2, characterized in that the first calculation unit is a numerical control device, and the related information is included in the machining program executed by the first calculation unit.

4. The control system according to claim 3, wherein the first process includes at least one of the following: a process for predicting the vibration of the controlled object using a model of the controlled object and the detection result of a sensor that detects the vibration of the controlled object; a process for predicting the presence or absence of mechanical interference using the processing program and the model; and a process for correcting the processing program by analyzing the processing program, and the first calculation unit executes the second process using the processing result of the first process.

5. The control system according to claim 1 or 2, characterized in that the first calculation unit is an external device that is not equipment specifically provided for the control of the controlled object, and the related information is included in a reference schedule that describes events relating to the controlled object in the order in which the events occur.

6. The control system according to claim 5, characterized in that the second calculation unit transmits progress information indicating the progress of the event being executed to the first calculation unit, and the first calculation unit transmits correction information to the second calculation unit for correcting the control processing of the second calculation unit according to the difference between the progress and the target value based on the progress information.

7. The control system according to claim 5 or 6, characterized in that the second calculation unit determines whether or not mechanical interference occurs with the controlled object it controls, transmits the determination result to the first calculation unit, and if the first calculation unit determines that mechanical interference occurs with the controlled object based on the determination result, transmits correction information to the second calculation unit to correct the control processing of the second calculation unit in order to avoid the mechanical interference with the controlled object.

8. The control system according to any one of claims 5 to 7, characterized in that the second calculation unit transmits progress information indicating the progress of the event being executed to the first calculation unit, and updates the reference schedule based on the difference between the progress and the target value based on the progress information.

9. The control system according to any one of claims 5 to 8, characterized in that when the second calculation unit detects an abnormality, it performs abnormality response control and sends a control switching notification to the first calculation unit indicating that it has switched from control based on instructions from the first calculation unit to the abnormality response control, and when the first calculation unit receives the control switching notification, it updates the reference schedule.

10. The control system according to 6 or 7, characterized in that the update of the reference schedule is performed by using a predetermined second schedule, different from the first schedule, as the reference schedule, where the reference schedule used before the update of the reference schedule is the first schedule.

11. The control system according to claim 6 or 7, characterized in that the update of the reference schedule is performed by generating a second schedule different from the first schedule, with the reference schedule used before the update of the reference schedule being designated as the first schedule, and using the generated second schedule as the reference schedule.

12. The control system according to any one of 6 to 9, characterized in that the first calculation unit transmits the scheduled time for application of the updated standard schedule to the second calculation unit before applying the updated standard schedule.

13. The control system according to any one of claims 5 to 9, characterized in that the first calculation unit, using request information indicating a quality or accuracy requirement for the controlled object and the predicted result of the quality or accuracy of the controlled object in the reference schedule, determines that the prediction result does not meet the requirement, and when instructing the start of the corresponding event for the controlled object, transmits correction information indicating the correction content to satisfy the requirement.

14. A control device that operates as the first arithmetic unit in a control system that controls one or more controlled objects, comprising: a first arithmetic unit; and one or more second arithmetic units that cooperate with the first arithmetic unit to perform a cooperative control process for controlling a controlled object, wherein the cooperative control process includes a plurality of control processes; a calculation unit that calculates the time required for the control processes to be performed by the one or more second arithmetic units; and a determination unit that determines the content and timing of an instruction to the one or more second arithmetic units to perform the cooperative control process based on the calculated time required and related information indicating the relationship between the control processes.

15. A control method performed by a control system that controls one or more controlled objects, comprising a first arithmetic unit and one or more second arithmetic units that perform collaborative control processing in cooperation with the first arithmetic unit to control a controlled object, wherein the collaborative control processing includes a plurality of control processing, and the method is characterized by comprising: a step in which the first arithmetic unit calculates the time required for the control processing to be performed by the one or more second arithmetic units; and a step in which the first arithmetic unit determines the content and timing of an instruction to the one or more second arithmetic units to perform the collaborative control processing, based on the calculated time required and related information indicating the relationship between the control processing.