Control system, control device and control method
The control system optimizes collaborative schedules by aligning start times with actual processing times, reducing wait times and enhancing throughput in multi-unit control systems.
Patent Information
- Application Number
- JP2025558329
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-04-17
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2045-04-17
AI Technical Summary
Existing control systems face inefficiencies due to wait times when one processing unit relies on data from another unit, as schedules are set assuming maximum processing times, leading to decreased throughput.
A control system with a first calculation unit that calculates and determines the timing of instructions for second calculation units based on actual processing times and coordination requirements, optimizing the collaborative schedule.
This approach reduces wait times and improves overall throughput by aligning start times with actual processing durations, optimizing the collaborative control process.
Smart Images

Figure 0007785253000001 
Figure 0007785253000002 
Figure 0007785253000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a control system, a control device, and a control method in which a plurality of calculation units cooperate to control a control target. [Background technology]
[0002] There is known a technology for using multiple devices to perform a task involving multiple processing steps. Patent Document 1 discloses a method for creating and executing a schedule for a substrate processing apparatus in which a master computer controls slave sequencers (PLCs: Programmable Logic Controllers). The computer described in Patent Document 1 predefines a schedule that reflects a predetermined correction time that takes into account fluctuations in communication delay time, and transmits commands related to each processing step to each slave based on this schedule. This reduces the waiting time between processing steps and prevents a decrease in process reproducibility due to fluctuations in communication delay time, compared to when the computer waits until the slave notifies it that a processing step has been completed before issuing a command to the next processing step. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2003-99112 Summary of the Invention [Problem to be solved by the invention]
[0004] On the other hand, in a process in which multiple processing units cooperate to control a control target, for example, when one processing unit uses data generated by a first processing operation in another processing unit for a second processing operation, if the data generation by the first processing operation is not completed even after the second processing operation has started, a wait time occurs in the second processing operation, preventing efficient execution of the processing. To avoid this problem, when a schedule is established taking into account a predetermined correction time, as in the technology described in Patent Document 1, the correction time must be set so that the second processing operation starts only after the data has been reliably generated by the first processing operation. However, the required time for each processing operation varies depending on factors such as the hardware configuration, communication environment, and hardware performance. If a schedule is created in advance by taking this variability into account and estimating the maximum required time for each processing operation, a wait time will occur if the actual required time is shorter than the scheduled required time. This results in a decrease in the overall throughput of the control processing performed by multiple processing units working together.
[0005] The present disclosure has been made in view of the above, and aims to provide a control system that can realize optimization of a collaboration schedule for control processing performed by a plurality of computing units in collaboration with each other. [Means for solving the problem]
[0006] In order to solve the above-mentioned problems and achieve the object, the control system according to the present disclosure includes a first calculation unit and one or more second calculation units that cooperate with the first calculation unit to execute a collaborative control process to control a control object, and the collaborative control process includes a plurality of control processes. The first calculation unit includes a calculation unit that calculates a required time for the control process executed by the one or more second calculation units, and a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating the association between the control processes. The plurality of control processes include a first process which is a control process executed by the second calculation unit, and a second process which is a control process executed by the first calculation unit when a condition related to a result of the first process is satisfied, the calculation unit calculates the time from when a start request for the first process is instructed to the second calculation unit until the condition is satisfied as the required time for the first process, and the determination unit determines the timing of instructing the start request for the first process so as to instruct the second calculation unit that executes the first process to start the first process so as to satisfy the condition, using the expected time to be reached until the first calculation unit starts executing the second process and the required time for the first process calculated by the calculation unit. do. [Effects of the Invention]
[0007] The control system according to the present disclosure has the effect of enabling optimization of a collaborative schedule. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram illustrating an example of a functional configuration of a control system according to a first embodiment. [Figure 2] FIG. 10 is a diagram showing an example of the time required for preceding processing in the cooperation target processing according to the first embodiment. [Figure 3] FIG. 10 is a diagram showing an example of required time information according to the first embodiment. [Figure 4] 10 is a flowchart showing an example of a processing procedure related to timing adjustment of the cooperative control processing in the first calculation unit according to the first embodiment. [Figure 5] FIG. 10 is a diagram showing an example of cooperative processing information according to the first embodiment; [Figure 6] FIG. 1 is a diagram for explaining an expected arrival time according to the first embodiment; [Figure 7] FIG. 1 is a diagram illustrating a first example of a hardware configuration of a control system according to a first embodiment. [Figure 8] FIG. 10 is a diagram showing a second example of the hardware configuration of the control system according to the first embodiment. [Figure 9] FIG. 10 is a diagram illustrating a third example of the hardware configuration of the control system according to the first embodiment. [Figure 10] FIG. 10 is a diagram showing a configuration example of a control system according to a second embodiment; [Figure 11] FIG. 10 is a diagram showing a configuration example of a control system according to a third embodiment. [Figure 12] FIG. 10 is a diagram showing an example of a machining program according to a third embodiment. [Figure 13] FIG. 13 is a diagram showing an example of a standard schedule according to the fourth embodiment. [Figure 14] FIG. 10 is a sequence diagram showing an example of an operation when an abnormality is detected in the control system according to the fourth embodiment. [Figure 15] FIG. 10 is a sequence diagram showing an example of an operation for updating a standard schedule based on a progress status in a control system according to a fourth embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0009] A control system, a control device, and a control method according to embodiments will be described in detail below with reference to the accompanying drawings.
[0010] Embodiment 1 FIG. 1 illustrates an example of a functional configuration of a control system 4 according to a first embodiment. As illustrated in FIG. 1, the control system 4 includes a first calculation unit 1, second calculation units 2-1 and 2-2, and controlled objects 3-1 and 3-2. The controlled objects 3-1 and 3-2 do not necessarily need to be included in the control system 4. The control system 4 is used, for example, for controlled objects 3-1 and 3-2 used on a factory production line; however, the application of the control system 4 is not limited to production lines. Hereinafter, the second calculation units 2-1 and 2-2 will also be referred to as "second calculation units 2" when not individually distinguished, and the controlled objects 3-1 and 3-2 will also be referred to as "controlled objects 3" when not individually distinguished. Although FIG. 1 illustrates two second calculation units 2, the number of second calculation units 2 may be one or more, and the number of second calculation units 2 is not limited to the example illustrated in FIG. 1. The number of controlled objects 3 may also be one or more, and the number of controlled objects 3 is not limited to the example illustrated in FIG. 1. In other words, the control system 4 controls one or more controlled objects 3. Furthermore, the numerical values of the branch numbers in the symbols for the second calculation unit 2 and the controlled object 3 are identification numbers in each configuration example, and the branch numbers themselves do not indicate a specific device, but are changed appropriately 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 control targets 3-1 and 3-2. The control target 3 may be, for example, a robot arm (manipulator) that 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 transport device, but may also be other than these. The transport device may be an AGV (Automatic Guided Vehicle), an AMR (Autonomous Mobile Robot), or the like, or may be a transport roller, a transport conveyor, or the like. Furthermore, the control targets 3-1 and 3-2 are not limited to independent devices, but may also be motors, inverters, or the like that constitute the devices.
[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 cooperative control processing. When the controlled objects 3-1 and 3-2 operate through the cooperative control processing, for example, the controlled objects 3-1 and 3-2 will perform a series of tasks on a production line. The cooperative 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 make up the cooperative 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 individually defined, or, for example, the first calculation unit 1 may control one controlled object 3 and the second calculation units 2-1 and 2-2 may each control one controlled object 3.
[0013] The first calculation unit 1 is a parent station, i.e., a master, and cooperates with the second calculation units 2-1 and 2-2 to control the controlled objects 3-1 and 3-2. The second calculation unit 2 is a child station, i.e., a slave, and controls the controlled objects 3-1 and 3-2 based on instructions from the first calculation unit 1. In this embodiment, the first calculation unit 1 calculates the required time for the processes to be executed by the second calculation units 2-1 and 2-2 and uses the required time to determine the content and timing of instructions to the second calculation unit 2 so that the collaborative control process is executed according to a predetermined standard schedule. This allows the control system 4 of this embodiment to reduce wait times and improve the throughput of the collaborative control process. Note that the standard schedule of this embodiment includes information indicating the execution order of each of the multiple processes included in the collaborative control process. Furthermore, the standard schedule may specify the start time of at least some of the processes relative to the start time, such as executing a certain process one minute after the start of the collaborative control process. Details of the operation of the first calculation unit 1 will be described later.
[0014] In the following, an example will be described in which the functions of the first calculation unit 1 and the second calculation units 2-1 and 2-2 are predetermined, i.e., which calculation unit performs which processing is predetermined. However, this is not limited to this, and the first calculation unit 1 may be able to change the functions of the first calculation unit 1 and the second calculation units 2-1 and 2-2. For example, the allocation of functions may be changed so that the processing previously performed by the second calculation unit 2-1 is now performed by the second calculation unit 2-2, or the processing previously performed by the second calculation unit 2-1 is now distributed to both the second calculation unit 2-1 and the second calculation unit 2-2. Furthermore, the allocation of functions may be changed so that part of the processing previously performed by the first calculation unit 1 is now performed by the second calculation units 2-1 and 2-2, or part of the processing previously performed by the second calculation units 2-1 and 2-2 is now performed by the first calculation unit 1. In this way, since the control system 4 is provided with a plurality of calculation units, for example, if a failure occurs in one of the second calculation units 2, control can be continued by changing the allocation of functions. Therefore, the control system 4 of this embodiment can improve reliability and availability compared to a system provided with only one computer.
[0015] The first calculation unit 1 includes a control processing unit 11, a calculation unit 12, a determination unit 13, a storage unit 14, and a transmission / reception unit 15. The transmission / reception unit 15 exchanges data with other devices or other components within the same device. As will be described later, the first calculation unit 1 and the second calculation units 2-1 and 2-2 may be separate devices (separate control devices), or at least two of the first calculation unit 1 and the second calculation units 2-1 and 2-2 may be provided within the same device. When the second calculation unit 2 is a separate device from the first calculation unit 1, the transmission / reception unit 15 exchanges data by communicating with the second calculation unit 2. The communication line between the first calculation unit 1 and the second calculation units 2-1 and 2-2 may be a wired line, a wireless line, or a combination of wired and wireless lines. The first calculation unit 1 and the second calculation units 2-1 and 2-2 may be communicatively 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 combination of a dedicated line and a public line. When the second calculation unit 2 and the first calculation unit 1 are provided in the same device, the transmitter / receiver 15 transmits and receives data via a connection line within the device.
[0016] The storage unit 14 stores data used in the calculations of the first calculation unit 1, data received from the second calculation unit 2, and the like. For example, the storage unit 14 stores the above-mentioned standard schedule. The storage unit 14 also stores cooperative processing information indicating the relationship between processes that require cooperation between different calculation units. Details of the cooperative processing information will be described later. The cooperative processing information is an example of association information indicating the relationship between control processes. For example, when data calculated in a first process performed by the second calculation unit 2-1 is used in a second process performed by the first calculation unit 1, in order to improve throughput while performing the processes correctly, it is desirable that the second process start as soon as the data calculated by the first process is received. In this case, the end time of the first process and the start time of the second process are related. In this way, processes whose start or end affects other processes are processes that need to be coordinated. Of a pair of processes that need to be coordinated, the process that is performed first, i.e., 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 finished is called the succeeding process. In addition, the processes that require cooperation are also referred to as cooperation target processes. The cooperation target processes can also be said to be processes that require adjustment of the processing timing between the first calculation unit 1 and the second calculation unit 2.
[0017] The standard schedule may include information indicating cooperative processing information. That is, the standard schedule may contain association information indicating the association between control processes, or the association information may be information ascertained from the standard schedule. For example, when the standard schedule indicates which processing is performed by which processing unit along with the processing order, information indicating that cooperation between the processes to be coordinated may be added.
[0018] The control processing unit 11 executes the process to be performed by its own station, i.e., the first calculation unit 1, among the cooperative control processes, based on the reference schedule stored in the storage unit 14. The control processing unit 11 also generates instruction information indicating the content of instructions to the second calculation unit 2, based on the reference schedule stored in the storage unit 14. For the process to be performed by the second calculation unit 2 among the processes to be coordinated, 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 required time for the processing to be executed by the second calculation unit 2. In particular, the calculation unit 12 calculates the required time for at least the preceding processing in the processing to be linked, and stores the calculated required time in the storage unit 14. Alternatively, the calculation unit 12 may notify the determination unit 13 of the calculated required time, and the determination unit 13 may store the required time in an internal memory. Furthermore, the calculation unit 12 may also calculate the required time for processing other than the preceding processing in the processing to be linked.
[0020] The determination unit 13 determines the content and timing of instructions to the second calculation unit 2 to execute the cooperative control process based on the calculated required time and association information indicating the association between the control processes. Specifically, the determination unit 13 determines 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 preset standard schedule, for example, using the reference schedule, cooperative process information, and required time stored in the storage unit 14. The determination unit 13 outputs the determined content and timing of instructions to the control processing unit 11. For example, if the content of the instruction is a request to start processing, the determination unit 13 notifies the control processing unit 11 to generate instruction information indicating the request to start processing when it is time to send instruction information indicating the request to start processing to the second calculation unit 2. Alternatively, the determination unit 13 may notify the control processing unit 11 of the type of instruction content to be sent to the second calculation unit 2 after how many seconds, based on the determined result of the content and timing of the instruction. Furthermore, the content of the instruction is not limited to the start of processing, i.e., immediate start of processing, but may indicate a relative time of the start of processing, such as starting processing in 5 seconds. Note that, although an example in which the control processing unit 11 generates instruction information to be transmitted to the second calculation unit 2 will be described here, the present invention is not limited to this, and the determination unit 13 may generate instruction information and transmit the generated instruction information to the second calculation unit 2 via the transmission / reception unit 15.
[0021] In FIG. 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 calculation unit 2 executes cooperative control processing to control the controlled object 3 in cooperation with the first calculation unit 1. The second calculation unit 2 includes a transmission / reception unit 21, a control processing unit 22, and a storage unit 23. The transmission / reception unit 21 exchanges data with other devices or other components within the same device. For example, when the transmission / reception unit 21 receives instruction information from the first calculation unit 1, it outputs the received instruction information to the control processing unit 22. The storage unit 23 stores data used in the calculations of the second calculation unit 2, data received from the controlled object 3, data received from the first calculation unit 1, etc.
[0023] The control processing unit 22 controls the controlled object 3 by performing some of the multiple processes constituting the collaborative control process based on the instruction information received from the first calculation unit 1 via the transmission / reception unit 21. The second calculation unit 2 basically operates based on the instruction information from the first calculation unit 1, but in addition to the operation based on the instruction information from the first calculation unit 1, it may be capable of performing an autonomous operation when some condition is satisfied, or may be capable of performing an operation in response to an operator's operation of an operation means (not shown) by the operator.
[0024] Next, the time required for the preceding process in the cooperative process of this embodiment will be described. FIG. 2 is a diagram showing an example of the time required for the preceding process in the cooperative process of this embodiment. In the example shown in FIG. 2, the first calculation unit 1 executes process A, process B, process C, process D, and process E, which are part of the processes included in the cooperative control process, and the second calculation unit 2 executes process X, which is part of the processes included in the cooperative control process. Also, in the example shown in FIG. 2, process E uses data obtained by process X, i.e., the processing result of process X. For this reason, the first calculation unit 1 must obtain the processing result of process X at the start of process E. If process X is started with enough time to obtain the processing result of process X in time for the start of process E, starting process X too early may restrict the processing performed by the second calculation unit 2 before process X, potentially resulting in unnecessary waiting times for various resources. Conversely, if process X is started too late, the processing result of process X will not arrive in time for the start of process E, resulting in waiting times in the first calculation unit 1 and a decrease in the throughput of the cooperative control process. If unnecessary waiting time or reduced throughput occurs as described above, the collaboration schedule will not be optimized. Therefore, it is desirable to optimize the collaboration schedule by setting the start timing of process X to match the actual required time for process X.
[0025] In the example shown in FIG. 2, processes E and X are processes to be coordinated that require coordination, with process X being the preceding process and process E being the following process. In the example shown in FIG. 2, the condition for coordination is that the control processing unit 11 of the first calculation unit 1 has received the processing result of process X, which is the preceding process, by the time a specific state, i.e., a specific stage, is reached. The coordination condition is a condition related to the result of the preceding process, and when this condition is met, the first calculation unit 1 executes the following process. In the example shown in FIG. 2, the specific state (hereinafter referred to as the specific state) is the start (start time) of process E.
[0026] As shown in FIG. 2, at the start of process E, the control processing unit 11 of the first calculation unit 1 receives the processing result of process X. Therefore, in this embodiment, the determination unit 13 of the first calculation unit 1 determines the timing of 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 second calculation unit 2 to execute the process X, the time required for transmitting the instruction information from the first calculation unit 1 to the second calculation unit 2, and the time required for transmitting the data from the second calculation unit 2 to the first calculation unit 1. The transmission time includes communication time when the first calculation unit 1 and the second calculation unit 2 are separate devices and communicate with each other. The transmission time includes the time required for transmitting data within the device when the first calculation unit 1 and the second calculation unit 2 are provided in the same device. The transmission time may also include the time required within each calculation unit, such as the time from when the first calculation unit 1 decides to transmit the instruction information until the instruction information is sent from the transmitter / receiver 15, and the time from when the second calculation unit 2 receives the instruction information until the control processing unit 22 receives the instruction information. The time required within each calculation unit need not be taken into consideration if its impact is negligible. In the example shown in FIG. 2, the time required for process X is the time from when a process X start request is sent from the first calculation unit 1 as instruction information until when the first calculation unit 1 receives the processing result of process X.
[0028] The time required to execute process X in the second calculation unit 2 may be determined solely by the calculation time in the second calculation unit 2, but may also depend on the operation of the controlled object 3, such as the time from when the second calculation unit 2 sends a command to the controlled object 3 until the operation of the controlled object 3 is completed, if process X causes the controlled object 3 to operate. Of the required time, the time that depends on the operation of the controlled object 3 will hereinafter be referred to as the operation time of the controlled object 3.
[0029] In this embodiment, the calculation unit 12 of the first calculation unit 1 calculates the required time for at least the preceding process in the linked process based on measurements, simulations, etc., and stores required time information indicating the calculated required time in the storage unit 14. FIG. 3 is a diagram illustrating an example of the required time information in this embodiment. FIG. 3 illustrates an example in which three elements are considered as elements of the required time for each process: the calculation time in the second calculation unit 2, the transmission time, and the operation time of the control target 3. Note that the operation time of the control target 3 may not need to be considered depending on the content of the process, so the operation time of the control target 3 does not need to be calculated. For example, in the example shown in FIG. 3, the operation time of the control target 3 is not calculated for process X, but is calculated for process Y. The calculation unit 12 calculates the time corresponding to each element depending on the content of the process, and determines the total time corresponding to each element as the required time. Which elements to consider for each process may be determined by the calculation unit 12 by analyzing a program or the like that describes the process content, or may be predetermined, or may be set and changed by an operator or the like.
[0030] For example, the calculation unit 12 calculates the calculation time of the second calculation unit 2 by calculating the time required for processing according to the content of the processing in the second calculation unit 2 and then adding the control period. 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 calculation unit 12 multiplies the execution time of one step by the number of steps, adds the timer setting time set in the step in the ladder program where the timer is used to the multiplication result, and adds the control period to the sum. Regarding the execution time of one step, the average execution time of one step or a percentile value such as the 70th percentile may be calculated as a representative value based on 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 a measured value, the measurement value may be obtained using the second calculation unit 2 itself, or a calculation unit with the same hardware specifications.
[0031] In addition, the calculation unit 12 may measure the RTT (Round Trip Time) by sending test data from the first calculation unit 1 to the second calculation unit 2 multiple times, and calculate the transmission time based on the maximum value of the measured values.
[0032] Furthermore, the calculation unit 12 may calculate the operation time of the control target 3 by actually measuring it or by performing a simulation. For example, when the control target 3 moves a certain distance, the calculation unit 12 may take into consideration the moving speed and calculate the operation time of the control target 3 based on the time required for acceleration / deceleration based on acceleration / deceleration parameters, the delay time due to a filter such as an S-shaped filter, etc.
[0033] The calculation unit 12 may calculate the required time by adding a margin to the time calculated for each element. The margin may be a fixed value, or may be a value obtained by multiplying the calculated time by a fixed ratio less than 1, such as 0.1, or may be any other value.
[0034] 2, the condition for starting process E is that the first calculation unit 1 obtains the processing result of process X in a specific state, but this is not limiting, and for example, the condition for starting the subsequent process may be that the operation of the control target 3 has reached a specific state as a result of a preceding process in the linked target process. For example, in a case where the first calculation unit 1 starts a certain process when the position of a robot, which is the control target 3 controlled by the second calculation unit 2, arrives at a specific position, 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 calculation unit 1 may be taken into account instead of the transmission time of data from the second calculation unit 2 to the first calculation unit 1.
[0035] Note that the above-described method of calculating the required time is merely an example, and the method of calculating the required time is not limited to the above example. Any method that estimates the actual required time for each process may be used. Here, an example is described in which the process of the first calculation unit 1 and the process of the second calculation unit 2 are the processes to be coordinated. However, this is not limiting, and similarly, processes between the second calculation units 2 may be the processes to be coordinated. For example, when the result of a process in the second calculation unit 2-1 is used in the process in the second calculation unit 2-2, the first calculation unit 1 may determine the timing of issuing a request to start the process in consideration of the required time for the preceding process in the second calculation unit 2-1.
[0036] Next, the operation of the first calculation unit 1 of this embodiment will be described. FIG. 4 is a flowchart showing an example of a processing procedure for adjusting the timing of cooperative control processing in the first calculation unit 1 of this embodiment. As shown in FIG. 4, the first calculation unit 1 determines the processing for which the required time is to be determined based on the cooperative processing information (step S1). In detail, the calculation unit 12 determines the processing for which the required time is to be determined using the cooperative processing information stored in the storage unit 14. As described above, the cooperative processing information may be integrated with the basic schedule.
[0037] FIG. 5 is a diagram illustrating an example of the linked processing information according to the present embodiment. In the example illustrated in FIG. 5, the linked processing information includes, for each linked process, information indicating the subsequent process and preceding process that constitute the linked process and the corresponding conditions. In the example illustrated in FIG. 5, a set of linked processes is a process E of the first calculation unit 1 and a process X of the second calculation unit 2-1, and a set of linked processes is a process G of the first calculation unit 1 and a process Y of the second calculation unit 2-2. As illustrated in FIG. 5, the condition for the first set of linked processes is that data obtained by process X is used in process E, and the condition for the second set of linked processes is that process G is started when process Y moves the control target 3 to position P. FIG. 5 is merely an example, and the linked processes and the corresponding conditions are not limited to the example illustrated in FIG. 5.
[0038] Returning to the explanation of Fig. 4, after step S1, the first calculation unit 1 calculates the required time (step S2). In detail, the calculation unit 12 calculates the required time for each process for which the required time is determined in step S1, and stores the calculation results as required time information in the storage unit 14. As described above, the required time is calculated by, for example, measurement, simulation, etc., but is not limited to these.
[0039] The first calculation unit 1 determines whether to start the collaborative control process (step S3). For example, the control processing unit 11 may determine to start the collaborative control process when it receives an instruction to start the collaborative control process from an operator via an operation means (not shown), or a start time may be specified in advance and the collaborative control process may start at the specified start time. The start time may also be specified in a standard schedule. When the control processing unit 11 starts the collaborative control process, it executes the processes that should be executed by the first calculation unit 1 among the collaborative control processes according to the standard 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 expected time to reach the next specific state (step S4). The expected time is the time from the current point in time until the specific state is reached. In detail, the calculation unit 12 calculates the expected time to reach the next specific state using the reference schedule and outputs the calculated expected time to the determination unit 13.
[0041] FIG. 6 is a diagram illustrating the predicted arrival time according to the present embodiment. In the example shown in FIG. 6, the first calculation unit 1 is currently executing process A. In FIG. 6, processes that have already been executed are indicated by solid lines, and processes to be executed are indicated by dashed lines. In the example shown in FIG. 6, the specific state is the start point of process E, so the calculation unit 12 predicts the time required for process D, which precedes process E, to be completed. Specifically, the calculation unit 12 calculates the time required for processes A, B, C, and D, and calculates the time required for process A to be completed by subtracting the elapsed time from the start of process A to the present from the time required for process A. The calculation unit 12 then calculates the predicted arrival time by adding the time required for process A to 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 operating time of the controlled object 3, as described above in the section on the required time for the preceding process. The method for calculating the execution time of the process and the operation time of the controlled object 3 is the same as the method for calculating the required time of the preceding process described above, and includes, but is not limited to, measurement, simulation, etc. If measurement is used, the measurement itself may be performed before the collaborative control process is performed, and in step S4, the calculation unit 12 may calculate the time required for each process using the measurement result. Alternatively, the calculation unit 12 may also calculate the time required for each process in the first calculation unit 1 when calculating the required time in step S2.
[0042] Returning to the explanation of FIG. 4, after step S4, the first calculation unit 1 determines whether the predicted arrival time is equal to or shorter than the required time of the corresponding preceding process (step S5). In detail, the determination unit 13 compares the predicted 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, thereby determining whether the predicted arrival time is equal to or shorter than the required time of the corresponding preceding process. If the predicted arrival time is not equal to or shorter than the required time of the corresponding preceding process (step S5 No), the first calculation unit 1 repeats step S5.
[0043] If the predicted arrival time is equal to or less than the required time for the corresponding preceding process (Yes in step S5), the first calculation unit 1 transmits a processing start request to the second calculation unit 2 (step S6). In detail, the determination unit 13 instructs the control processing unit 11 to generate instruction information indicating a request to start the preceding process, and the control processing unit 11 generates the instruction information based on the instruction and transmits the generated instruction information via the transmission / reception unit 15 to the second calculation unit 2 that executes the preceding process.
[0044] The first calculation unit 1 determines whether to end the collaborative control process (step S7), and if it determines that it should be ended (step S7 Yes), it ends the process. More specifically, in step S7, the control processing unit 11 determines whether to end the collaborative control process based on the standard schedule. If it determines that it should not be ended (step S7 No), the first calculation unit 1 performs the process again from step S4.
[0045] Assuming that the preceding process in the processes to be coordinated is the first process and the subsequent process is the second process, the multiple control processes constituting the cooperative control process include the first process executed by the second calculation unit 2 and the second process, which is a control process executed by the first calculation unit 1 when a condition related to the result of the first process is satisfied. The calculation unit 12 calculates the time from when the second calculation unit 2 is instructed to request the start of the first process until the above condition is satisfied as the required time for the first process. The determination unit 13 determines the timing of issuing the request to start the first process so as to issue a request to start the first process to the second calculation unit 2 that executes the first process so as to satisfy the above condition, using the expected time until the first calculation unit 1 starts executing the second process and the required time for the first process calculated by the calculation unit 12.
[0046] As a result of the above processing, when the predicted arrival time becomes equal to or less than the required time for the corresponding preceding processing, that is, for example, when the predicted arrival time becomes equal to the required time for the corresponding preceding processing, instruction information is sent to the second calculation unit 2 that executes the preceding processing, requesting the start of the preceding processing. Therefore, instruction information is sent to the second calculation unit 2 requesting the start of the preceding processing at a point in time before the specific state by the required time for the preceding processing. The required time for the preceding processing is the actual required time estimated by measurement, simulation, etc. This reduces processing wait time and improves the throughput of the collaborative control processing.
[0047] In the example shown in FIG. 4, the first calculation unit 1 calculates the predicted arrival time using the time required for the processing of 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 predicted arrival time may be the time from the current time to that time. For example, if the reference schedule determines the time at which the processing corresponding to the specific state starts based on the elapsed time from the start of the collaborative control processing, that is, the time at which the processing corresponding to the specific state starts is determined. In this case, the calculation unit 12 or the determination unit 13 may calculate the predicted arrival time as the difference between the elapsed time from the start of the collaborative control processing and the start time of the processing corresponding to the specific state in the reference schedule. Alternatively, if the start time of the processing corresponding to the specific state in the reference schedule is determined by time (absolute time), the calculation unit 12 or the determination unit 13 may calculate the predicted arrival time based on the current time and the start time of the processing corresponding to the specific state in the reference schedule.
[0048] Note that FIG. 4 is merely an example, and the order of each step and the specific processing content are not limited to the example shown in FIG. 4 as long as equivalent operations can be realized. For example, in FIG. 4, the determination unit 13 determines the timing of issuing an instruction to the second calculation unit 2 by sequentially comparing the predicted arrival time with the required time of the corresponding preceding process. However, this is not limited to this. The determination unit 13 may obtain the timing of transmitting instruction information, i.e., the timing of issuing an instruction, by subtracting the required time of the corresponding preceding process from the predicted arrival time, and perform step S6 when the instruction timing arrives. Also, as described above, the content of the instruction information transmitted to the second calculation unit 2 is not limited to a request to start processing, but may also include a specification of the execution start time and the processing to be executed, such as starting processing in Q seconds. In this case, the determination unit 13 shifts the timing of transmitting the instruction information Q seconds earlier than the example shown in FIG. 4.
[0049] Next, the hardware configuration of the control system 4 of this embodiment will be described. FIG. 7 is a diagram showing a first example of the hardware configuration of the control system 4 of this embodiment. In the first example shown in FIG. 7, the control system 4 is provided across both a range corresponding to OT (Operational Technology), which is a closed technology such as within a factory, and a range corresponding to 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 a first calculation unit 1, and an NC device 201, controllers 202 and 203, and an external device 40 are a second calculation 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. The machine tools 301 and 304, the robot 302, and the transport device 303 are each a control target 3. Hereinafter, the range corresponding to OT will be simply referred to as OT, and the range corresponding to IT will be simply referred to as IT.
[0050] For example, the NC devices 200 and 201, the controllers 202 and 203, the machine tools 301 and 304, the robot 302, and the transport device 303 may be installed in a factory, and the external device 40 may be installed on an external cloud, but this is not limiting. 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 a memory 102. The NC device 200 may also include a memory external to the ASIC 100. The ASIC 100 is an example of a computer system including the CPU 101. The NC device 201 and the controllers 202 and 203 also include an ASIC.
[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 using multiple computer systems, such as a cloud. When using only OT, i.e., when using only dedicated equipment such as a factory where the control target 3 is installed, it is necessary to prepare dedicated equipment when increasing the processing volume or the amount of data to be stored. As shown in FIG. 7, by using the external device 40 with external resources, the external device 40 can perform calculations with high processing loads and store large amounts of data.
[0052] In the example shown in FIG. 7 , the NC device 200 on the OT serves as the first calculation unit 1, transmitting instruction information to the NC device 201, controllers 202 and 203 on the OT, and the external device 40 in the IT, thereby controlling the NC device 201, controllers 202 and 203, and the external device 40. In this manner, the first calculation unit 1 and the second calculation unit 2 may be implemented as separate devices. In the example shown in FIG. 7 , data is exchanged between the first calculation unit 1 and the second calculation unit 2 via communication between the devices, and therefore the communication environment affects the transmission time. In particular, the transmission time between the first calculation unit 1 and the external device 40 may be long depending on the communication environment, making it important to consider the transmission time when calculating the required processing time.
[0053] In the NC device 200, for example, a program that realizes the functions of the first calculation unit 1 of this embodiment is stored in the memory 102 or a memory outside the ASIC 100, and the CPU 101 stores this program in the main storage area of the memory 102. In this state, the CPU 101 executes processing as the first calculation unit 1 of this embodiment in accordance with the program stored in the main storage area. The same applies to the NC device 201 and the controllers 202 and 203. The program (program product) may be provided by a recording medium or via a transmission medium such as the Internet. Similarly, the external device 40 executes processing as the second calculation unit 2 by having the CPU in the computer system execute the program.
[0054] FIG. 8 is a diagram showing a second example of the hardware configuration of the control system 4 of this embodiment. In the example shown in FIG. 8, the NC device 200 includes two ASICs, ASICs 100-1 and 100-2. The ASIC 100-1 includes two CPUs 101-1 and 101-2, of which the CPU 101-1 is the first calculation unit 1 and the other CPU 101-2 is the second calculation unit 2-5. The ASIC 100-2 includes the CPU 101, which is the second calculation unit 2-5. Note that memory is not shown in FIG. 8. The NC device 201, controllers 202 and 203, external device 40, machine tools 301 and 304, robot 302, and conveyance device 303 are the same as those in the example shown in FIG. 7.
[0055] 8, multiple CPUs are provided within ASIC 100-1, one of which serves as a first arithmetic unit 1 and the other as a second arithmetic unit 2. In this manner, the first arithmetic unit 1 and the second arithmetic unit 2 may be provided within one device. When the first arithmetic unit 1 and the second arithmetic unit 2 are provided within one device, the transmission time within the time required for processing is the transmission time in the electrical connection path between the first arithmetic unit 1 and the second arithmetic unit 2.
[0056] FIG. 9 is a diagram illustrating a third example of the hardware configuration of the control system 4 according to the present embodiment. In the example illustrated in FIG. 9, the NC device 200 includes two ASICs, ASICs 100-1 and 100-2. Each of the ASICs 100-1 and 100-2 includes two CPUs. Each CPU includes two cores. In the example illustrated in FIG. 9, one core 103-1 in the CPU 101-1 of the ASIC 100-1 is the first arithmetic unit 1, and the other core 103-2 is the second arithmetic unit 2-5. One core 103-3 in the CPU 102-2 of the ASIC 100-1 is the second arithmetic unit 2-6, and one core 103-4 in the CPU 101-1 of the ASIC 100-2 is the second arithmetic unit 2-7. Note that memory is not illustrated in FIG. 8. The NC device 201, controllers 202 and 203, external device 40, machine tools 301 and 304, robot 302, and transfer device 303 are the same as those in the example shown in FIG.
[0057] In the example shown in Fig. 9, a first calculation unit 1 and a second calculation unit 2 are provided in each core unit within a CPU in the NC device 200. Note that Fig. 9 shows an example in which three of the cores in the NC device 200 serve as the second calculation unit 2, but this is not limiting, and all of the cores in the NC device 200 other than the core that serves as the first calculation unit 1 may serve as the second calculation unit 2, and the cores that function as the first calculation unit 1 and the second calculation unit 2 are not limited to the example shown in Fig. 9. In this way, the first calculation unit 1 and the second calculation unit 2 may be provided in each core unit.
[0058] 7 to 9, the control system 4 is provided in both the OT, I, and T, but this is not limited thereto, and the control system 4 may be provided in either the OT or the IT. Also, FIGS. 7 to 9 are merely examples, and the types and numbers of devices constituting the control system 4 are not limited to these examples. Also, in the example shown in FIGS. 7 to 9, an ASIC 100 is used in the device in the OT, but this is not limited thereto, and a general-purpose CPU and memory may be used, or an FPGA (Field Programmable Gate Array) may be used, or a mixture of these may be used.
[0059] As described above, in this embodiment, in the control system 4 in which the first calculation unit 1 and the 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 the calculated time to determine the content and timing of instructions to the second calculation unit 2 so that the cooperative control processing is performed according to a preset reference schedule. This allows the control system 4 of this embodiment to reduce waiting times and improve the throughput of the cooperative control processing.
[0060] Embodiment 2 Fig. 10 is a diagram showing an example of the configuration of a control system 4 according to the second embodiment. In the example shown in Fig. 10, an external device 40 is a first calculation unit 1, and an NC device 201 and controllers 202 and 203 are a 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 those in the example shown in Fig. 7 of the first embodiment. Duplicate descriptions of components having the same functions as those in the first embodiment will be omitted, and differences from the first embodiment 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 Fig. 7 of the first embodiment. In this way, the external device 40 may operate as the first calculation unit 1 to control the NC device 201 and the controllers 202 and 203. Also, Fig. 10 is an example, and the types and numbers of the devices constituting the control system 4 are not limited to these examples.
[0062] Embodiment 3 FIG. 11 is a diagram illustrating a configuration example of a control system 4 according to the third embodiment. In the example illustrated in FIG. 11, the control system 4 includes a first calculation unit 1, second calculation units 2-1 to 2-3, and a second calculation unit 2-4 that is an external device utilizing external resources. The first calculation unit 1 and the second calculation unit 2-4 can communicate with each other via a network 5. The second calculation units 2-1 to 2-3 may also be able to communicate with the second calculation unit 2-4 via the network 5. The second calculation units 2-1 to 2-3 control the control targets 3-1 to 3-3, respectively, and the first calculation unit 1 controls the control target 3-4. The second calculation units 2-1 to 2-4 correspond to the second calculation unit 2 according to the first embodiment, and the control targets 3-1 to 3-4 correspond to the control target 3 according to the first embodiment. The number of second calculation units 2 is not limited to the example illustrated in FIG. 11. Duplicate descriptions of components having the same functions as those in the first embodiment will be omitted, and differences from the first embodiment will be mainly described below.
[0063] In this embodiment, the first calculation unit 1 is an NC device, similar to the example shown in FIG. 7 of the first embodiment. The first calculation unit 1 calculates the required time for the processing to be executed by the second calculation unit 2, similar to the first calculation unit 1 of the first embodiment, and determines the content and timing of instructions to the second calculation unit 2 using the required time 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, the relevant information is included in the machining program. In other words, the relevant information is grasped from the machining program. Furthermore, 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 written in, for example, S-code, M-code, G-code, or the like.
[0064] In the example shown in FIG. 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 memory unit 23. The machine model is a machine model of the controlled object 3, the tool data is data related to the tool used for machining, and the variables are common variables 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 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 can store various data. 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 within the OT, such as common variables. For example, subprograms, macro programs provided by the machine manufacturer, canned cycles, etc. may be stored in the memory unit 23 of the second calculation unit 2-4, and these may be called from the calculation units within the OT using commands such as M98. It should be noted that FIG. 11 is an example, and the data stored in the storage unit 23 of the second calculation unit 2-4 is not limited to this example.
[0065] Furthermore, the second calculation unit 2-4 may store the digital machine of the control system 4 in the memory 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 while the control system 4 is operating. The digital machine includes, for example, a 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 may correspond to a position of, for example, several tens of millimeters, and may be determined by simulation so as to prevent collision between the workpiece, which is the object to be processed, and the tool. The predetermined time is not limited to this.
[0066] Furthermore, the second calculation unit 2-4 may predict vibration of the control object 3 using the detection results of a sensor that detects vibration, such as an acceleration sensor, provided in the control object 3, a digital machine, and a machining program. The control processing unit 22 of the second calculation unit 2-4 may instruct the first calculation unit 1 via the transceiver unit 21 to limit the corner deceleration speed or override for a portion of the control object 3 where it is 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 result via the transceiver unit 21, and the first calculation unit 1 may control the control object 3 to limit the corner deceleration speed or override in accordance with this notification. 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] In addition, 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 deflection of the machine due to axis movement, perform a correction amount to correct the amount of deflection, and notify the first calculation unit 1 of the correction results via the transmission / reception unit 21.In other words, the second calculation unit 2-4 may perform correction processing of the machining program by analyzing the machining program.
[0068] For example, the second calculation unit 2-4 may perform a preceding process before the first calculation unit 1 reaches a specific state, and the first calculation unit 1 may use the result of the preceding process in processing a block corresponding to the specific state. For example, the preceding process performed by the second calculation unit 2-4 may include at least one of a process of predicting vibration of the control target 3 using the digital machine of the control target 3 and the detection results of a sensor that detects vibration of the control target 3, a process of predicting the presence or absence of mechanical interference using the machining program and the digital machine, and a process of correcting the machining program by analyzing the machining program.
[0069] The first calculation unit 1 may transmit the end point position together with a check request to the second calculation unit 2-4 each time a block (line) in the machining program being executed progresses, and the control processing unit 22 of the second calculation unit 2-4 may perform an interference check by performing a simulation using a digital machine based on the notified end point position. In this way, the second calculation unit 2-4 may perform an abnormality detection process and notify the first calculation unit 1 of the result of the abnormality detection process.
[0070] In addition, the control processing unit 22 of the second calculation unit 2-4 may recognize the "machining surface" from the entire machining program in the control system 4, perform processing to correct the machining path so that the machining surface is smooth, and notify the first calculation unit 1 of the processing result, which may then be reflected by the first calculation unit 1.
[0071] Furthermore, the control processing unit 22 of the second calculation unit 2-4 may be capable of executing processes based on programs written in other languages, such as Python, in addition to processes according to machining programs using G-code. This allows for the execution of complex processes that are difficult to achieve using G-code alone. Note that the processes executed by the control processing unit 22 of the second calculation unit 2-4 are 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 required time for the processing to be executed by the second calculation unit 2 as described in the first embodiment, and determines 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 using the required time. For example, the second calculation unit 2-4 may simulate operations prior to the operations actually executed in the OT during machining, and the first calculation unit 1 may reflect the simulation results in the control of the controlled object 3, or the first calculation unit 1 may execute processing using data stored in the second calculation unit 2-4. In such cases, the first calculation unit 1 may determine the start timing of the preceding processing to be executed by the second calculation unit 2-4, as in the first embodiment, by using the required time for the preceding processing to determine the start timing of the preceding processing to be executed by the second calculation unit 2-4.
[0073] FIG. 12 is a diagram showing 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 FIG. 12, the start of a specific block 504 is in a specific state. The second calculation unit 2-4 performs interpolation processing before the execution of the specific block 504 begins, and the results of the interpolation processing are 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 form a set of linked processes, with the second calculation unit 2-4 being the preceding process and the processing corresponding to the specific block 504 being the following process. Each block in the block group 501 in the machining program 500 corresponds to a process other than the linked processes. Block 503 corresponds to the current process, i.e., the process currently being executed.
[0074] The calculation unit 12 reads ahead a predetermined look-ahead range 502 before the control processing unit 11 of the first calculation unit 1 executes the look-ahead range 502. Look-ahead refers to reading in advance a portion to be executed after the current execution point. In the example shown in FIG. 12, block 503 corresponds to the current process, so the calculation unit 12 has already read out the look-ahead range 502 at this point. As shown on the right side of the machining program 500 in FIG. 12, the processes corresponding to each block in the look-ahead range 502 correspond to processes A to E illustrated in FIGS. 2 and 6 of the first embodiment, and process X corresponds to the interpolation process in the second calculation unit 2-4. Similar to the first calculation unit 1 of the first embodiment, the first calculation unit 1 calculates the required time and the expected arrival time of the preceding process. When the expected arrival time becomes equal to or shorter than the required time of the preceding process, the first calculation unit 1 transmits instruction information indicating a request to start storage processing to the second calculation unit 2-4. The calculation unit 12 calculates the time required for the interpolation process based on the collaborative processing information in the same manner as in 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 expected time to reach the specific state in the same manner as in 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 is used as an example, but in the case of the second calculation unit 2 on the OT, the first calculation unit 1 may similarly use the machining program as a reference schedule.
[0077] Embodiment 4 FIG. 13 is a diagram showing an example of a standard schedule according to the fourth embodiment. A control system 4 according to the present embodiment includes a first calculation unit 1 and second calculation units 2-1 to 2-3. The first calculation unit 1 is an external device 40, as in the second embodiment. That is, in the present embodiment, the first calculation unit 1 is an external device 40 that is not a facility dedicated to controlling the control target 3. Duplicate descriptions of components having the same functions as those in the first embodiment will be omitted, and the following description will mainly focus on the differences from the first embodiment.
[0078] 13, second calculation unit 2-1 controls robot 306, second calculation unit 2-2 controls machine tool 307, and second calculation unit 2-3 controls transport robot 308. Second calculation units 2-1 to 2-3 are the second calculation unit 2 described in embodiment 1. Robot 306, machine tool 307, and transport robot 308 are examples of the control target 3 described in embodiment 1.
[0079] In the example shown in FIG. 13 , robot 306 performs loading and unloading, which involves removing and installing a workpiece. Specifically, machine tool 307 unlocks the door, and robot 306 removes the workpiece from, for example, a workpiece storage container, opens the door of machine tool 307, loads the workpiece onto machine tool 307, and closes the door. After robot 306 closes the door, it locks the door and performs workpiece processing, such as removal, addition, or deformation. After completing the processing, machine tool 307 unlocks the door again. To transport the workpiece processed by machine tool 307, transfer robot 308 arrives near machine tool 307 and unloads the workpiece from machine tool 307 and installs the workpiece on machine tool 307 before the machine tool 307 completes the processing and unlocks the door. Then, transfer robot 308 transports the workpiece to a predetermined location, such as a conveyor. Robot 306, machine tool 307, and transport robot 308 operate in cooperation in this manner, repeating this series of operations. Control of this series of cooperative operations corresponds to the cooperative control processing performed by first calculation unit 1 and second calculation units 2-1 to 2-3 described in embodiment 1. In this embodiment, the cooperative control processing performed by first calculation unit 1 is control of the operations of second calculation units 2-1 to 2-3.
[0080] In this embodiment, the standard schedule defines the order of events, such as removing a workpiece and opening a door, as shown in FIG. 13 . The standard schedule describes events related to the control target 3 in the order in which the events are to be performed. In this embodiment, related information is included in the standard schedule. That is, related information is obtained from the standard schedule. Furthermore, the standard schedule may define a relative time or absolute time for at least one of the events. Note that while FIG. 13 only describes an outline of the event, the standard schedule may also include information indicating the content of control to be performed by the second calculation unit 2 to cause the control target 3 to perform this operation. For example, a control command for the control target 3 may be included. Alternatively, the second calculation unit 2 may store the content of control corresponding to the type of event, and the first calculation unit 1 may specify the type of event, thereby allowing the second calculation unit 2 to identify the content of control corresponding to the 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, resulting in a waiting time. On the other hand, if the transport robot 308 arrives at the machine tool 307 too late after the door of the machine tool 307 is unlocked, the robot 306 will not be able to load the next workpiece onto the machine tool 307, resulting in a waiting time. As described above, some of these processes can be coordinated to improve throughput by adjusting the timing. For this reason, the first calculation unit 1, like in the first embodiment, treats these processes as processes to be coordinated and controls the timing of instructions to each of the second calculation units 2-1 to 2-3 so that the end of the preceding process coincides with the start of the subsequent process. This allows the control system 4 of this embodiment to improve the throughput of the cooperative control process.
[0082] In addition, when the first calculation unit 1 is provided on the OT, the collaborative control process may be controlled in the same manner according to the standard schedule as shown in FIG.
[0083] Furthermore, the determination unit 13 of the first calculation unit 1 may instruct the second calculation unit 2 to correct the content of control according to the progress status of the process executed by the second calculation unit 2. For example, the second calculation unit 2 periodically transmits progress information indicating the progress status of an event being executed to the first calculation unit 1. The progress status is represented, for example, by a value related to progress (hereinafter also referred to as a progress index), and the progress information includes the progress index. The progress status of the process executed by the second calculation unit 2 includes the progress status of an operation performed by the control target 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 status indicated by the progress information becomes equal to or greater than a threshold, the determination unit 13 transmits correction information to the second calculation unit 2 via the transmission / reception unit 15, instructing the second calculation unit 2 to correct the content of control for the corresponding event.
[0084] For example, if the event in the first schedule is an event in which the control target 3 moves from position P1 to position P2, the progress information may be information indicating the position of the control target 3 at that time, or information indicating the progress rate where completion of the movement to position P2 is 100%. The position of the control target 3 is detected, for example, by a sensor provided in the control target 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 transmission / reception unit 21. The information indicating the position of the control target 3 may be the amount of movement since the start of movement, or may be information indicating the position of the control target 3 itself. If the progress is delayed, the determination unit 13 of the first calculation unit 1 may transmit correction information to the second calculation unit 2 via the transmission / reception unit 15, for example, instructing the second calculation unit 2 to increase the speed of the movement of the control target 3. If the correction results in a change in the time required for an event, and the time of each event is defined in the standard schedule, the first calculation unit 1 corrects the standard schedule in accordance with the change.
[0085] Furthermore, for example, if the event in the first schedule is an event in which the control target 3 places N objects, the progress information may be information indicating how many objects the control target 3 has placed. The progress information is not limited to the above-mentioned examples, and may be any information that indicates progress according to the content of the event.
[0086] Furthermore, for example, in a configuration in which there is a possibility of interference (mechanical interference) between control targets 3, the second calculation unit 2 may determine whether or not interference with other control targets 3 is likely based on the detection results of sensors mounted on the control targets 3, and transmit the determination result to the first calculation unit 1. For example, the second calculation unit 2 may determine that interference will occur when the distance between the control target 3 it controls and the other control targets 3 is equal to or less than a threshold. The determination unit 13 of the first calculation unit 1 may generate correction information based on this determination result to avoid mechanical interference between the control targets 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, the first calculation unit 1 modifies the standard schedule in accordance with the change, provided that the time of each event is defined in the standard schedule.
[0087] The reference schedule may also be changed depending on the situation. For example, as described in the first embodiment, the second calculation unit 2 basically operates based on instruction information from the first calculation unit 1, but may be capable of operating autonomously when certain conditions are met. For example, the second calculation unit 2 may implement predetermined abnormality response control when an abnormality is detected. Specifically, when the distance between the control target 3 and at least one of another control target 3, a person, and an object is predicted to be below a threshold based on the detection result of a sensor mounted on the control target 3 (not shown), the control target 3 may be brought to an emergency stop. Furthermore, when vibrations with an amplitude equal to or greater than a threshold are detected based on a sensor mounted on the control target 3, the control target 3 may be brought to an emergency stop. The abnormality detection method and the abnormality response control are not limited to these examples.
[0088] FIG. 14 is a sequence diagram showing an example of operation when an abnormality 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). More specifically, the first calculation unit 1 transmits instruction information to the second calculation unit 2 based on the first schedule, as in the fourth embodiment. When the control processing unit 22 of the second calculation unit 2 detects an abnormality in the control target 3 (step S12), it performs abnormality response control (step S13). The control processing unit 22 of the second calculation unit 2 transmits a control switch notification, indicating that control based on the instruction information from the first calculation unit 1 has been switched to abnormality response control, to the first calculation unit 1 via the transmission / reception unit 21 (step S14).
[0089] The first calculation unit 1 stores a 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 abnormality response control occurs. For example, the second schedule may be created depending on which event among the events included in the first schedule caused abnormality response control. For example, the second schedule is created for each event, i.e., for each event that causes abnormality response control, taking into consideration the time required for abnormality response control and also considering which event to start re-executing. 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 the control switching notification from the second calculation unit 2 via the transmission / reception unit 15, the determination unit 13 selects a second schedule corresponding to the event corresponding to the control switching notification, determines a 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, when the first calculation unit 1 receives the control switching notification from the second calculation unit 2, the first calculation unit 1 may update the reference schedule. The scheduled application time may be a time that is a predetermined fixed time after the reception of the control switching notification. The fixed time may be determined according to the event for which abnormality response control was performed. When the scheduled application time of the second schedule arrives, the first calculation unit 1 starts the collaborative control process 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 that is different from the first schedule as the reference schedule. 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 abnormality but also to other second calculation units 2. When the abnormality response control ends, the second calculation unit 2 may notify the first calculation unit 1 of the end of the abnormality response control. In this case, the first calculation unit 1 may determine the scheduled application time of the second schedule after receiving the notification of the end of the abnormality response control.
[0091] 14, the first calculation unit 1 transmits the scheduled application time of the second schedule to the second calculation unit 2, but this operation does not have to be performed. When the first calculation unit 1 transmits the scheduled application time of the second schedule to the second calculation unit 2, if a preparatory operation is required in the second calculation unit 2 to perform an operation based on the second schedule, this preparatory operation can be performed before the scheduled application time of the second schedule.
[0092] In the above example, the second calculation unit 2 detects an abnormality. However, this is not limiting. The abnormality detection by the second calculation unit 2 may also be operator intervention, i.e., detection of an operation by the operator. For example, when the second calculation unit 2 detects that the operator has operated an operating means such as an emergency stop button (not shown), it may determine that an abnormality has been detected and may perform an emergency stop of the controlled object 3 as an abnormality response control. For example, if the operator determines that the controlled object 3 is about to come into contact with a person or an object, or if the operator determines that the controlled object 3 is abnormal, the operator may operate the operating means to bring the controlled object 3 to an emergency stop. Furthermore, the second calculation unit 2 may determine that an abnormality has been detected when it detects that the operator has performed an operation to switch control of the controlled object 3 to manual operation using an operating means (not shown) that can accept an instruction to switch control of the controlled object 3 to manual operation. This operating means can also accept input of the details of control of the controlled object 3, and the operator then performs manual operation. For example, if the operator determines that the controlled object 3 is about to come into contact with a person or an object, or if the operator determines that the controlled object 3 is abnormal, he or she switches to manual operation by operating the operation means. When manual operation is finished, the operator uses the operation means to perform an operation to end manual operation, which causes the second calculation unit 2 to detect the end of manual operation. In this example, manual operation becomes abnormality response control. When switching to manual operation, the second calculation unit 2 notifies the first calculation unit 1 that manual operation, i.e., abnormality response control, has ended.
[0093] 14 illustrates an example in which a second schedule is created in advance and the reference schedule is updated by selecting a second schedule from the created second schedules. However, the present invention is not limited to this. A new second schedule may be created depending on the situation during execution of the collaborative control process. 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 when the deviation between the progress and the target value of the progress based on the first schedule becomes large.
[0094] Fig. 15 is a sequence diagram showing an example of an operation of updating the standard schedule based on the progress status in the control system 4 of this embodiment. Step S21 is the same as step S11 shown in Fig. 14. The second calculation unit 2 periodically transmits progress information indicating the progress status to the first calculation unit 1 (step S22).
[0095] When the determination unit 13 of the first calculation unit 1 determines that the progress has deviated from the target value based on the progress information received via the transmission / reception unit 15 (step S23), the determination unit 13 creates a second schedule (step S24). For example, the determination unit 13 compares a target value for the operation of the control target 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 when the difference between the target value and the progress value is equal to or greater than a threshold. Then, the determination unit 13 creates a second schedule that takes into account the difference between the target value and the progress value. Specifically, for example, the determination unit 13 may create a second schedule by shifting the first schedule by the difference between the target value and the progress value. Furthermore, for example, the determination unit 13 may create a second schedule by re-optimizing the first schedule based on the remaining work at that time. Furthermore, when there are multiple candidate movement paths for a moving control target 3 such as the transport robot 308, the second schedule may be created by reselecting a path from 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 FIG. 14. In this manner, the first calculation unit 1 may create a second schedule different from the first schedule and update the standard schedule by using the second schedule as the standard schedule. Note that, although step S25 is performed after step S24 in FIG. 15, this is not limitative, and step S25 may be performed before step S24. For example, the determination 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 base schedule is updated by creating a second schedule, thereby maintaining efficient coordination of the linked processes even if, for example, work due to the operation of the controlled object 3 is delayed for some reason.
[0098] 15, the second calculation unit 2 periodically transmits the progress information, but this is not limiting, and 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, may notify the first calculation unit 1 that the progress is behind via the transmitting / receiving unit 21. In step S23, the first calculation unit 1 may determine that the progress has deviated from the target value by receiving the notification, and may perform step S24 and subsequent steps.
[0099] In the example shown in Fig. 14, the first calculation unit 1 uses a second schedule created in advance when the second calculation unit 2 receives a notification of control switching, but this 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 Fig. 15. Also, in the example shown in Fig. 15, the first calculation unit 1 creates a new second schedule in step S24, but this is not limited to this, and multiple second schedules corresponding to several expected situations may be created in advance, and a second schedule to be applied may be selected from the multiple second schedules in step S24. Figs. 14 and 15 are merely examples, and the specific procedure for updating the reference schedule is not limited to these examples.
[0100] Furthermore, the first calculation unit 1 may use requirement information indicating quality or accuracy requirements for the controlled object 3 and the predicted result of the quality or accuracy of the controlled object 3 in the standard schedule, and if it determines that the predicted result does not satisfy the requirement, when instructing the start of the corresponding event of the controlled object 3, transmit correction information indicating the correction content to satisfy the requirement. Note that the accuracy may be, for example, but is not limited to, the accuracy of the trajectory of the interpolated data relative to the program command trajectory. The quality may be, for example, but is not limited to, surface quality. These indicate how well the controlled object 3 can follow the control command corresponding to each event. The correction information may be, for example, a correction amount for time, position, speed clamp (a correction amount for speed), a correction amount for acceleration, etc. The prediction of the quality or accuracy of the controlled object 3 may be performed by the first calculation unit 1 based on, for example, a simulation in accordance with the standard schedule, but is not limited to this.
[0101] The configurations shown in the above embodiments are merely examples, and may be combined with other known technologies, or different embodiments may be combined with each other. It is also possible to omit or modify parts of the configurations as long as they do not deviate from the gist of the invention. [Explanation of symbols]
[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 controlled object, 4 control system, 5 network, 11, 22 control processing unit, 12 calculation unit, 13 decision unit, 14, 23 memory unit, 15, 21 transmission / reception 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 transport device, 308 transport robot, 500 machining program, 501 block group, 502 look-ahead range, 503 Block, 504 specific block.
Claims
1. A control system including a first calculation unit and one or more second calculation units that execute a cooperative control process to control a control target in cooperation with the first calculation unit, and controls one or more of the control targets, the collaborative control process includes a plurality of control processes; The first calculation unit a calculation unit that calculates a required time for the control process executed by the one or more second calculation units; a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; and Equipped with the plurality of control processes include a first process that is the control process executed by the second calculation unit, and a second process that is the control process executed by the first calculation unit when a condition related to a result of the first process is satisfied; the calculation unit calculates, as a required time for the first process, a time from when a request to start the first process is issued to the second calculation unit until when the condition is satisfied; a determination unit that determines the timing of issuing a request to start the first processing to the second processing unit that executes the first processing, using the predicted time until the first processing unit starts executing the second processing and the required time of the first processing calculated by the calculation unit, so as to satisfy the condition.
2. the first calculation unit is a numerical control device, 2. The control system according to claim 1, wherein the related information is included in a machining program executed by the first calculation unit.
3. the first processing includes at least one of a processing for predicting vibration of the control object using a model of the control object and a detection result of a sensor that detects vibration of the control object, a processing for predicting the presence or absence of mechanical interference using the machining program and the model, and a processing for correcting the machining program by analyzing the machining program, 3. The control system according to claim 2, wherein the first calculation unit executes the second process using a result of the first process.
4. the first calculation unit is an external device that is not a facility dedicated to controlling the control object, The control system according to claim 1 , wherein the related information is included in a standard schedule that describes events related to the controlled object in the order in which the events are to be performed.
5. the second calculation unit transmits progress information indicating a progress status of the event being executed to the first calculation unit; The control system according to claim 4, characterized in that the first calculation unit transmits correction information to the second calculation unit for correcting the control processing of the second calculation unit in accordance with a difference between the progress status and a target value based on the progress information.
6. the second calculation unit determines whether or not mechanical interference has occurred in the controlled object that it controls, and transmits the determination result to the first calculation unit; The control system according to claim 4, characterized in that, when the first calculation unit determines, based on the judgment result, that mechanical interference of the controlled object will occur, it transmits correction information to the second calculation unit to correct the control processing of the second calculation unit so as to avoid mechanical interference of the controlled object.
7. the second calculation unit transmits progress information indicating a progress status of the event being executed to the first calculation unit; 7. The control system according to claim 5, wherein the standard schedule is updated based on the progress information and a difference between the progress status and a target value.
8. A control system comprising a first calculation unit and one or more second calculation units that execute collaborative control processing to control a control object in cooperation with the first calculation unit, and that controls one or more of the control objects, the collaborative control process includes a plurality of control processes; The first calculation unit a calculation unit that calculates a required time for the control process executed by the one or more second calculation units; a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; and Equipped with the first calculation unit is an external device that is not a facility dedicated to controlling the control object, the related information is included in a standard schedule that describes events related to the control target in the order in which the events are to be performed; when the second calculation unit detects an abnormality, the second calculation unit performs abnormality response control and transmits a control switch notification to the first calculation unit indicating that control has been switched from control based on an instruction from the first calculation unit to the abnormality response control; The control system is characterized in that the first calculation unit updates the reference schedule when receiving the control switching notification.
9. The control system according to claim 5 or 6, characterized in that the updating of the standard schedule is performed by using a predetermined second schedule different from the first schedule as the standard schedule, assuming that the standard schedule used before the update of the standard schedule is a first schedule.
10. The control system described in claim 5 or 6, characterized in that the standard schedule is updated by generating a second schedule different from the standard schedule used before the standard schedule was updated as a first schedule, and using the generated second schedule as the standard schedule.
11. A control system comprising a first calculation unit and one or more second calculation units that execute collaborative control processing to control a control object in cooperation with the first calculation unit, and that controls one or more of the control objects, the collaborative control process includes a plurality of control processes; The first calculation unit a calculation unit that calculates a required time for the control process executed by the one or more second calculation units; a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; and Equipped with the first calculation unit is an external device that is not a facility dedicated to controlling the control object, the related information is included in a standard schedule that describes events related to the control target in the order in which the events are to be performed; the second calculation unit transmits progress information indicating a progress status of the event being executed to the first calculation unit; the first calculation unit transmits, to the second calculation unit, correction information for correcting the control process of the second calculation unit in accordance with a difference between the progress status and a target value based on the progress information; A control system characterized in that the first calculation unit transmits a scheduled application time of the updated standard schedule to the second calculation unit before applying the updated standard schedule.
12. A control system comprising a first calculation unit and one or more second calculation units that execute collaborative control processing to control a control object in cooperation with the first calculation unit, and that controls one or more of the control objects, the collaborative control process includes a plurality of control processes; The first calculation unit a calculation unit that calculates a required time for the control process executed by the one or more second calculation units; a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; and Equipped with the first calculation unit is an external device that is not a facility dedicated to controlling the control object, the related information is included in a standard schedule that describes events related to the control target in the order in which the events are to be performed; A control system characterized in that the first calculation unit uses requirement information indicating the quality or accuracy requirement for the controlled object and the predicted result of the quality or accuracy of the controlled object in the standard schedule, and when it determines that the predicted result does not satisfy the requirement, it sends correction information indicating the correction content to satisfy the requirement when instructing the start of the corresponding event of the controlled object.
13. A control device including a first calculation unit and one or more second calculation units that execute cooperative control processing to control a control target in cooperation with the first calculation unit, and that operates as the first calculation unit in a control system that controls one or more of the control targets, the collaborative control process includes a plurality of control processes; a calculation unit that calculates a required time for the control process executed by the one or more second calculation units; a determination unit that determines the content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; and Equipped with the plurality of control processes include a first process that is the control process executed by the second calculation unit, and a second process that is the control process executed by the first calculation unit when a condition related to a result of the first process is satisfied; the calculation unit calculates, as a required time for the first process, a time from when a request to start the first process is issued to the second calculation unit until when the condition is satisfied; The control device is characterized in that the determination unit determines the timing of the instruction to request the start of the first processing to be issued to the second processing unit that executes the first processing so as to satisfy the condition, using the predicted time until the first processing unit starts executing the second processing and the required time of the first processing calculated by the calculation unit.
14. A control method executed by a control system that controls one or more control objects, the control system including a first calculation unit and one or more second calculation units that cooperate with the first calculation unit to execute a cooperative control process for controlling a control object, the control system comprising: the collaborative control process includes a plurality of control processes; a calculation step in which the first calculation unit calculates a required time for the control process executed by the one or more second calculation units; a determination step in which the first calculation unit determines content and timing of an instruction to execute the collaborative control process for the one or more second calculation units based on the calculated required time and association information indicating an association between the control processes; Including, the plurality of control processes include a first process that is the control process executed by the second calculation unit, and a second process that is the control process executed by the first calculation unit when a condition related to a result of the first process is satisfied; In the calculation step, a time from when a request to start the first process is issued to the second calculation unit until the condition is satisfied is calculated as a required time for the first process, a control method characterized in that, in the determination step, the timing of the instruction to request the start of the first processing is determined using the predicted time until the first calculation unit starts executing the second processing and the required time of the first processing calculated in the calculation step, so as to instruct the second calculation unit executing the first processing to start the first processing so as to satisfy the condition.
Citation Information
Patent Citations
One-rail multi-vehicle RGV scheduling method and system
CN112224245A
Task scheduling method
JP1996055036A
Method for preparing and executing schedule of substrate treating apparatus and its program
JP2003099112A
Service processor
JP2005173764A
Distributed control system
JP2006134203A