Control system, production method and storage medium
By introducing setting saving, status acquisition and device control components into the control system, the execution sequence of processes is dynamically determined, which solves the problems of the destination being filled and the priority of processes being unclear, and improves the system's operating efficiency.
Patent Information
- Application Number
- CN202310047336.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-02-15
- Filing Date
- 2023-01-31
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2043-01-31
AI Technical Summary
When existing control systems execute multiple processes in parallel, problems such as the destination of the object being filled, unclear priority of processes without additional steps, and failure to consider the end time of processes can easily occur, leading to reduced operating efficiency.
The system employs a higher-level control device that saves user-specified process execution conditions through a settings and storage unit, acquires the current status through a status acquisition unit, and dynamically determines the process execution sequence and device control through a device control unit, thereby achieving task coordination.
This improved the operational efficiency of the control system, prevented the destination from being filled with objects, and ensured a reasonable priority order for processes and a reasonable arrangement of process completion times.
Smart Images

Figure CN116610071B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to control systems, production methods, and storage media. Background Technology
[0002] Patent Document 1 describes the following technology: describing the actions of a PLC (Programmable Logic Controller) of multiple devices in a control system as a ladder diagram and generating a program; the PLC controls one or more devices based on the generated program; and the multiple devices of the system sequentially execute each of multiple processes for each of multiple objects.
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent document 1: Japanese Patent Application Publication No. 2012-194678. Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] The problem to be solved by this disclosure is, for example, improving the operating efficiency of control systems.
[0008] means for solving problems
[0009] One aspect of this disclosure relates to a control system comprising a plurality of devices that, for a plurality of objects to which a plurality of processes are to be performed respectively, perform at least one of the plurality of processes independently of others. The control system includes: a setting storage unit that stores settings specified by a user and related to the execution conditions of at least one of the plurality of processes; a status acquisition unit that acquires the current status of the control system; and a device control unit that, based on the settings and the status, dynamically determines the next process to be performed among the plurality of processes and controls the plurality of devices.
[0010] Invention Effects
[0011] According to this disclosure, for example, the operating efficiency of the control system is improved. Attached Figure Description
[0012] Figure 1 This is a diagram illustrating an example of the overall structure of a control system.
[0013] Figure 2 This is a diagram illustrating an example of the configuration of various devices in a control system.
[0014] Figure 3 This is a diagram illustrating an example of the procedures performed on various objects.
[0015] Figure 4 This is an illustration of problem point 1 (the destination of the object is filled).
[0016] Figure 5 It is a function block diagram that represents the functions implemented in the control system.
[0017] Figure 6 This is a diagram illustrating a data storage example for the set data.
[0018] Figure 7 This is a diagram representing a data storage example of status data.
[0019] Figure 8 This is an example of a setup screen.
[0020] Figure 9 This is a flowchart illustrating an example of a process performed in a control system.
[0021] Figure 10 This is an explanatory diagram for issue 2 (the priority order of the processes is not marked).
[0022] Figure 11 This is a diagram illustrating an example of a functional block diagram in the second embodiment.
[0023] Figure 12 This is an example of a simulated scene.
[0024] Figure 13 This is a diagram illustrating an example of a simple simulation implementation method.
[0025] Figure 14 This is an example of how the display of a chart changes in a simulated screen.
[0026] Figure 15 This is a functional block diagram of the third embodiment.
[0027] Figure 16 This is an explanatory diagram for problem point 3 (without considering the end time).
[0028] Figure 17 This is a functional block diagram of the fourth embodiment.
[0029] Figure 18 This diagram illustrates an example of a process performed while considering the replacement of the robotic arm. Detailed Implementation
[0030] [1. First Implementation Method]
[0031] The control system and the like involved in the first embodiment will be described in detail.
[0032] [1-1. Overall Structure of the Control System]
[0033] Figure 1 This is a diagram illustrating an example of the overall structure of a control system. For example... Figure 1 As shown, the control system 1 of the first embodiment includes a higher-level control device 10, a robot controller 20, a first device 30, a second device 40, a third device 50, a fourth device 60, and an engineering device 70, all of which are connected in a communicative manner. In the first embodiment, the devices are described as being connected via a general network such as Ethernet (registered trademark), but the devices can be connected via any network. For example, the devices can also be connected via an industrial network (including so-called field networks).
[0034] The upper-level control device 10 is a device that controls the entire control system 1. When the entire control system 1 is referred to as a unit, the upper-level control device 10 is sometimes called a unit controller; a unit is a smaller unit than a line. The CPU 11 includes at least one processor. The CPU 11 is a type of circuit. The storage unit 12 includes at least one of volatile memory such as RAM and non-volatile memory such as flash memory. The storage unit 12 stores programs and data. The communication unit 13 includes at least one of a communication interface for wired communication and a communication interface for wireless communication.
[0035] The robot controller 20 is a device for controlling the robot 24. The physical structures of the CPU 21, storage unit 22, and communication unit 23 can be the same as those of the CPU 11, storage unit 12, and communication unit 13, respectively. For example, the robot 24 includes an arm, a robotic hand, motors, and sensors. The robot 24 is connected to the robot controller 20 via power lines and communication lines.
[0036] The first device 30, the second device 40, the third device 50, and the fourth device 60 are devices controlled by the upper-level control device 10. For example, the first device 30, the second device 40, the third device 50, and the fourth device 60 are respectively a motor control device, a motion controller, a robot controller, a processing device, a measuring device, or an inspection device. The physical structures of CPUs 31, 41, 51, 61, storage units 32, 42, 52, 62, and communication units 33, 43, 53, 63 can be the same as those of CPU 11, storage unit 12, and communication unit 13, respectively.
[0037] The engineering device 70 is a user-operated device. For example, the engineering device 70 is a personal computer, a smartphone, or a tablet terminal. The physical structure of the CPU 71, storage unit 72, and communication unit 73 can be the same as that of the CPU 11, storage unit 12, and communication unit 13, respectively. The operation unit 74 is an input device such as a mouse or keyboard. The display unit 75 is a liquid crystal display or an organic EL display.
[0038] Furthermore, the programs and data described as stored in each of the storage units 12, 22, 32, 42, 52, 62, and 72 can also be provided via a network. Additionally, the hardware structure of each device may include a reading unit (e.g., an optical disc drive or memory card slot) for reading computer-readable information storage media, and an input / output unit (e.g., a USB port) for direct connection to external devices. In this case, the programs stored in the information storage media can also be provided via the reading unit or the input / output unit. Furthermore, circuits referred to as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits) may also be included. FPGAs or ASICs can also be equivalent to circuits.
[0039] [1-2. Overview of the Control System]
[0040] The control system 1 includes multiple devices that, for multiple objects to which multiple processes should be performed respectively, independently perform at least one of the multiple processes. In the first embodiment, the robot controller 20, robot 24, first device 30, second device 40, third device 50, and fourth device 60 are examples of multiple devices. In the first embodiment, the case where these six devices are included in the control system 1 is described, but the number of devices included in the control system 1 can be any number, for example, it can be 2-5 or more than 7.
[0041] A process is an operation performed on an object. A process can also be referred to as the physical action of various devices. A process itself can be of any type; for example, it can be a movement process, a machining process, a measuring process, a cleaning process, a transport process, or an inspection process. In the first embodiment, robot controller 20 and robot 24 perform the movement process. First device 30 performs the measuring process. Second device 40 and third device 50 respectively perform machining processes. Fourth device 60 performs the cleaning process.
[0042] An object is an object that becomes the object of a process. An object is sometimes also referred to as a workpiece. An object can be any of the following: a final product, an intermediate product, a blank, or a raw material. The object itself can be of any kind, such as semiconductors, electrical products, automobiles, food, beverages, pharmaceuticals, or daily necessities. In the first embodiment, the sequence of multiple processes for one object is predetermined.
[0043] In control system 1, multiple processes are executed simultaneously and in parallel. For example, sometimes process X for object A and process Y for object B are executed simultaneously and in parallel, instead of starting the initial process for object B after all processes for object A are completed. The number of processes executed simultaneously and in parallel is not limited to two; it can also be three or more. Furthermore, multiple processes are not always executed simultaneously and in parallel; there can be states where only one process is executed, or states where no process is executed. The operation of control system 1 only requires periods during which multiple processes are executed simultaneously and in parallel.
[0044] Figure 2 This is a diagram illustrating an example of the configuration of the devices in control system 1. Figure 2 The upper-level control device 10, robot controller 20, and engineering device 70 are omitted. For example, with robot 24 as the center, the first placement location P1, the first device 30, the second device 40, the second placement location P2, the third placement location P3, the third device 50, the fourth device 60, and the fourth placement location P4 are arranged in a counter-clockwise order. Furthermore, the devices can be arranged arbitrarily, and are not limited to any particular configuration. Figure 2 Examples.
[0045] Placement areas P1 through P4 are locations for placing certain items. For example, placement area P1 is used to place objects before the initial processing step. Placement area P2 is used to place one or more robotic arms that can be attached to robot 24. Placement area P3 is used to place objects whose processing steps have been completed. Placement area P3 can also be called a location for placing objects waiting for the next processing step. Placement area P4 is used to place objects whose processing steps have been completed.
[0046] In the first embodiment, the first placement location P1, the third placement location P3, and the fourth placement location P4 each define a space where objects can be placed. For example, up to 20 objects can be placed in each of the first placement location P1 and the fourth placement location P4. For example, up to 6 objects can be placed in the third placement location P3. The number of objects that can be placed in the first placement location P1, the third placement location P3, and the fourth placement location P4 is not limited to the example of the first embodiment and can be any number.
[0047] Figure 3 This diagram illustrates an example of the processing steps performed on each object. In the first embodiment, a two-stage processing step is described. The second device 40 processes the right half of the object as the first processing step. The third device 50 processes the left half of the object as the second processing step. For each object moving counter-clockwise around the robot 24, the following steps are performed: Figure 3Each process.
[0048] Changeover adjustment processes are preparation processes equivalent to other processes. For example, a changeover adjustment process includes a storage process for storing the object in a first placement location P1. The storage process can be performed by robot 24 or by peripheral devices such as a transport robot. The changeover adjustment process may also include other processes such as an installation process for installing a robotic arm configured in a second placement location P2 onto robot 24.
[0049] The first to third major processes are those that require a relatively long time. For example, the first major process includes: a movement process in which robot 24 moves the object from the first placement location P1 to the first device 30; and a measurement process in which the first device 30 measures the object. The second major process includes: a movement process in which robot 24 moves the object from the first device 30 to the second device 40; and a processing process in which the second device 40 processes the right half of the object.
[0050] An internal changeover adjustment process is performed between the second and third major processes. In principle, the internal changeover adjustment process involves stopping at least one device to perform an internal changeover adjustment. For example, installing a robotic arm onto robot 24, changing peripheral grippers, or supplying parts are equivalent to an internal changeover adjustment process. The internal changeover adjustment process in the first embodiment also includes a movement process where robot 24 moves the object from the second device 40 to the third placement location P3. This movement process may also be included in the third major process.
[0051] For example, the third major process includes: a movement process in which robot 24 moves the object from the third placement location P3 to the third device 50; and a processing process in which the third device 50 processes the left half of the object. The finishing process includes: a movement process in which robot 24 moves the object from the third device 50 to the fourth device 60; a cleaning process in which the fourth device 60 cleans the object; and a movement process in which robot 24 moves the object from the fourth device 60 to the fourth placement location P4. The finishing process may also include a removal process in which peripheral devices such as a transport robot remove the object from the fourth placement location P4.
[0052] In a control system 1 that executes multiple processes simultaneously and in parallel, as a task coordination mechanism, a definition such as "execute the task if the source is completed and the destination is ready" can be considered. The source is the preceding process of the process corresponding to the task, and the destination is the following process of the process corresponding to the task. That is, as a task coordination mechanism, the completion of the preceding process and the readiness of the following process are considered as conditions for executing a certain process.
[0053] However, various problems may arise if task coordination is performed as described above. For example, problems include (problem 1) the destination of the object is filled, (problem 2) no priority order of the processes is attached, (problem 3) the end time of the processes is not considered, and (problem 4) multiple processes cannot be executed simultaneously. If these problems occur, the operating efficiency of the control system 1 will decrease. In the first embodiment, the structure for solving problem 1 will be described, and the structures for solving problems 2-4 will be described in other embodiments and variations.
[0054] Figure 4 This is an illustration of problem point 1 (the destination of the object is filled). Figure 4 In this example, there are 13 objects, represented by circles. The values within the circles indicate the order in which they were retrieved from the first placement location P1. The 13 objects, once brought into the first placement location P1, are retrieved one by one in sequence, and each process is executed sequentially.
[0055] Typically, the processing time required for a step is much longer compared to the time required for other steps. If the processing time of the third device 50 is very time-consuming, the object is likely to remain in the third placement location P3. For example, if the maximum number of objects that can be placed in the third placement location P3 is 6, then... Figure 4 In this state, it is impossible to place the objects above it in the third placement location P3. Figure 4 In this state, when the tenth object is removed from the second device 40, it may come into contact with the fourth to ninth objects located in the third placement location P3. In this case, the control system 1 detects an error and stops operating, resulting in reduced operational efficiency.
[0056] Therefore, the upper-level control device 10 counts the number of objects placed in the third placement location P3 and determines whether to execute the movement process from the second device 40 to the third placement location P3. The upper-level control device 10 executes the movement process when the counted number of objects is less than 6 (5 or less), thereby solving problem 1 (the destination of the objects is filled). Hereinafter, the control system 1 of the first embodiment will be described in detail.
[0057] [1-3. Functions implemented by the control system]
[0058] Figure 5 This is a functional block diagram representing the functions implemented by the control system 1. In the first embodiment, the functions implemented by the upper-level control device 10, the robot controller 20, the first device 30, the second device 40, the third device 50, the fourth device 60, and the engineering device 70 will be described respectively.
[0059] [1-3-1. Functions implemented by the superior control device]
[0060] like Figure 5 As shown, the upper-level control device 10 includes a data storage unit 100, a setting storage unit 101, a status acquisition unit 102, and a device control unit 103. The data storage unit 100 is mainly implemented by the storage unit 12. The setting storage unit 101, the status acquisition unit 102, and the device control unit 103 are each mainly implemented by the CPU 11.
[0061] [Data Storage Department]
[0062] The data storage unit 100 stores data required for controlling multiple devices such as the robot controller 20. In the first embodiment, setting data D1 and status data D2 will be described as examples of the data stored in the data storage unit 100.
[0063] Figure 6 This is a diagram illustrating an example of storing setting data D1. Setting data D1 is data related to settings in control system 1. In the first embodiment, setting data D1 represents settings specified by the engineering tools described later. For example, setting data D1 includes the execution order of processes, process name, initial flag, cycle information, end flag, time information, number of units, priority information, and execution conditions.
[0064] The execution order is the sequence in which the processes for each object are performed. The execution order stored in the setting data D1 is the execution order of the processes from the perspective of each object (the order in which the processes are performed for a particular object). The execution order of the processes from the perspective of the control system 1 as a whole (which process for which object is performed after the process for a particular object) is dynamically determined by the device control unit 103, which will be described later. In the first embodiment, since the six processes are performed—changeover adjustment process, first major process, second major process, internal changeover adjustment process, third major process, and end process—the execution order of each of these six processes is shown.
[0065] The process name is the name of each process. The initial flag is information that identifies the first process executed. In the first embodiment, since the changeover adjustment process is executed first, the initial flag for the changeover adjustment process is set to Execute (ON). The cycle information is information that identifies that subsequent processes will not be executed if the process corresponding to the cycle information is not completed. In the first embodiment, it is assumed that cycle information is not used.
[0066] The end flag identifies the last executed step. In the first embodiment, the last executed step is the final step, therefore the end flag for the final step is "Execute (ON)". Furthermore, if there are initial and end flags, the first and last steps can be identified, so the execution order may not be included in the setting data D1. In this case, the execution conditions can be specified to ensure execution in the user-defined order.
[0067] Time information is information related to the time required to perform a process. In the first embodiment, the time information is described as a predicted value of the time required to perform the process, but the time information can also represent a measured value. The predicted value can be a user-specified value or a value calculated through simulation. Figure 6 As shown, in the first embodiment, it is assumed that the second and third major processes require significantly more time compared to the other processes. Furthermore, the third major process requires more time than the second major process.
[0068] The unit count information relates to the maximum number of objects that can be configured. Regarding the unit count information, only the process in which the object configuration occurs is specified. In the first embodiment, the unit count information is set only for the changeover adjustment process, the internal changeover adjustment process, and the completion process. The unit count information for the changeover adjustment process indicates the maximum number of objects that can be configured in the first placement location P1. The unit count information for the internal changeover adjustment process indicates the maximum number of objects that can be configured in the third placement location P3. The unit count information for the completion process indicates the maximum number of objects that can be configured in the fourth placement location P4.
[0069] Priority information is information related to the order of operations. Priority information can be set for all operations, or it can be set only for a subset of operations. Figure 6 In the data storage example, the third major process has the highest priority, followed by the second major process. No priority is specified for the other processes. This priority information is used to address problem 2 (without specifying process priorities) in the second embodiment described later.
[0070] Execution conditions are the conditions used to perform a process. Execution conditions can also be called conditions that trigger a process. When the execution conditions for a certain process are met, that process is executed. In the first embodiment, since there are multiple objects, when the execution conditions for a certain process are met, the process is executed on one of the objects for which the process has not yet been performed. Execution conditions can determine various conditions. For example, as execution conditions for a certain process, the execution status of other processes can also be determined. As execution conditions for a certain process, receiving a specific signal from a specific device or sensor can also be determined.
[0071] In the first embodiment, the order in which each of the plurality of objects is taken out from the first placement location P1 is determined. Figure 4 The values within the circle shown indicate that, under the condition that the execution conditions for a certain process are met, the object that is first in sequence among the objects that have not yet performed that process ( Figure 4 The process is executed for objects with smaller numerical values within the circle shown. For example, if the first major process is completed up to the third object, and the execution conditions for the first major process are met in this state, the first major process for the fourth object is executed.
[0072] Furthermore, when the execution conditions of multiple processes are met simultaneously, the process to be executed can be selected based on a predetermined priority order. In the first embodiment, the case where the execution condition is determined by setting a predetermined value for a variable stored in the data storage unit 100 is described; however, any condition can be specified for the execution condition. For example, the execution condition could be that the upper-level control device 10 receives a predetermined signal from another device or sensor. The execution condition could also be that a predetermined action is detected by analyzing an image from a vision sensor.
[0073] If task coordination is implemented in accordance with the aforementioned method of "execute the task if the source is completed and the destination is ready," then as an execution condition for the process with an execution order of n (where n is a natural number), the process with an execution order of n-1 is designated as completed and the process with an execution order of n+1 is designated as ready. In the first embodiment, the state of each process shown in the status data D2 is described, but the method for identifying the state of each process can itself utilize various methods. For example, the state of each process can be identified by variables stored independently of the status data D2 in the data storage unit 100, or it can be identified based on signals received from the control device or sensors.
[0074] In the first embodiment, to address problem point 1 (the destination is full), the current quantity (later, the current configuration quantity) of the objects to be placed in the third placement location P3 is specified as less than the upper limit quantity as an execution condition for the process of retrieving objects from the second device 40 in the internal production adjustment process. This upper limit quantity is a value represented by the unit count information of the internal production adjustment process. Furthermore, other conditions may also be included in the execution conditions of the internal production adjustment process. For example, the completion of the third major process may also be included in the execution conditions of the internal production adjustment process.
[0075] Similarly, for processes other than the final process, the execution condition can be a single condition or multiple conditions. In the first embodiment, the execution conditions for other processes can be the same as those for the task coordination described above, or they can be the conditions described in other embodiments described later. In the first embodiment, the execution conditions for other processes can be arbitrary conditions; as long as they include conditions related to the current configuration quantity, they can serve as the execution conditions for the internal production changeover adjustment process.
[0076] In addition, the information contained in the setting data D1 is not limited to Figure 6 For example, the setting data D1 only needs to contain the information required by the device control unit 103 (described later) to dynamically determine the next process to be performed. For example, the setting data D1 may also include a flag indicating whether a process can be performed dynamically by the device control unit 103.
[0077] Figure 7 This is a diagram illustrating an example of how status data D2 is stored. Status data D2 is data related to the current status in control system 1. In the first embodiment, the current status in control system 1 is explained as being managed by variables. Variables are information that is referenced or changed by at least one of the control program. Furthermore, each variable does not need to be aggregated into status data D2; it can be treated as separate data.
[0078] For example, status data D2 contains status variables that represent the current execution status of each process. The status variable can be any one of the following: a first value indicating that the process is ready to execute (equivalent to a ready value), a second value indicating that the process is executing (equivalent to a not-complete value), and a third value indicating that the process is completed (equivalent to a completed value).
[0079] The initial value of the status variable for each process is a first value. When a process executed by a certain device begins, the device control unit 103 changes the status variable of that process to a second value. When the device receives a notification from that device that the process is complete, the device control unit 103 changes the status variable of that process to a third value. The status variable that has become a third value returns to the first value at a predetermined time. For example, if the next process after the process whose status variable has become a third value is executed, the status variable returns to the first value. In addition, the status variable may also have other values, such as values indicating that an error has occurred in the process.
[0080] For example, the status data D2 contains a configuration number variable representing the current quantity of objects placed in the third placement location P3. The initial value of the configuration number variable is set to 0. For example, if an object is taken from the second device 40 and placed in the third placement location P3 through an internal production adjustment process, the device control unit 103 increases the configuration number variable by one. When the robot 24 holds the object placed in the third placement location P3 and installs the object into the third device 50 through the third major process, the device control unit 103 decreases the configuration number variable by one.
[0081] Furthermore, the status data D2 can contain variables of any kind, and the types of variables are not limited to the examples above. For instance, the status data D2 can also contain object variables representing the current status of each object. If it is Figure 7 In the data storage example, the object variable represents the completed process for the object. The first and second objects mean that all six processes have been completed and configured in the fourth placement location P4. The nth object means that none of the processes have been completed and it has not been stored in the first placement location P1.
[0082] For example, status data D2 may also include variables representing the current position of the configured object, or variables representing physical quantities detected by sensors. Status data D2 may also include information other than variables. For example, status data D2 may also include information representing at least one of the start and end times of each process. Status data D2 may also include the current date and time in control system 1. The current date and time can be managed using general information such as year, month, and day, or information such as timer values.
[0083] Furthermore, the data stored in the data storage unit 100 is not limited to the examples described above. For instance, the data storage unit 100 stores control programs. Control programs are programs used to control devices such as the robot controller 20. Control programs can be created in any language, for example, ladder logic or robot languages. The control program includes: code for determining whether the execution conditions for each process are met based on setting data D1 and status data D2; and code for executing the process corresponding to the determined met execution conditions in the device. The data storage unit 100 may also store parameters referenced by the control program. The data storage unit 100 may also store other programs such as firmware.
[0084] [Settings Preservation Department]
[0085] The setting storage unit 101 stores settings specified by the user that relate to the execution conditions of at least one of a plurality of processes. These settings can be the execution conditions themselves (e.g., the execution conditions contained in setting data D1) or information required to determine whether the execution conditions are met (e.g., time information contained in setting data D1). Saving settings means recording data representing the settings in the data storage unit 100. The setting storage unit 101 can retrieve the saved settings at any given time.
[0086] In the first embodiment, the user-specified settings are included in the setting data D1, so the setting storage unit 101 saves the settings by recording the setting data D1 in the data storage unit 100. Alternatively, the user-specified settings may not be saved as setting data D1, but may be incorporated as part of the control program. In this case, the setting storage unit 101 can save the settings by recording the control program in the data storage unit 100.
[0087] For example, setting the execution order of two or more operations targeting a single object. If it is... Figure 6 For example, the data storage settings shown in setting data D1 include the execution order and process name. Figure 6 The process name is a relatively general name for the process, but it can also include the name of a more detailed process. For example, there may be a movement process that moves an object between two or more processes. In this case, the name of the movement process can also be included in the settings.
[0088] For example, the setting could also be an upper limit on the number of objects that can be configured in the third placement location P3. The third placement location P3 is an example of a buffer unit. Therefore, the part describing the third placement location P3 can be replaced with a buffer unit. A buffer unit is a place where objects are temporarily configured. A buffer unit can be any place where objects can be configured; for example, it could be a workbench, shelf, box, or container.
[0089] In the first embodiment, the third major process is performed on the objects arranged in the third placement location P3. Therefore, the upper limit included in the setting can also be referred to as the upper limit of objects that can wait for the execution of the third major process among multiple processes. The objects arranged in the third placement location P3 are the result of the second major process and the internal changeover adjustment process. Therefore, the upper limit included in the setting can also be referred to as the upper limit of objects that can be arranged after the completion of the second major process and the internal changeover adjustment process.
[0090] in the case of Figure 6In the data storage example, the upper limit quantity is represented by the number of units in the internal production changeover adjustment process. Therefore, the setting storage unit 101 stores the upper limit quantity by storing the number of units in the internal production changeover adjustment process contained in the setting data D1. Alternatively, the upper limit quantity may also be included as part of the execution conditions of the third major process. In this case, the setting storage unit 101 stores the upper limit quantity by storing the execution conditions of the third major process contained in the setting data D1.
[0091] [Situation Acquisition Department]
[0092] The status acquisition unit 102 acquires the current status in the control system 1. In the first embodiment, since the current status is shown in the status data D2, the status acquisition unit 102 acquires the current status by acquiring the status data D2. If the status data D2 is stored in a device or memory other than the upper-level control device 10, the status acquisition unit 102 acquires the status data D2 from that device or memory.
[0093] Furthermore, if the current situation is not included in the situation data D2 but is prepared as a variable different from the situation data D2, the situation acquisition unit 102 can acquire the current situation by acquiring that variable. Alternatively, if the current situation is determined based on signals from sensors, the situation acquisition unit 102 acquires the current situation by receiving signals from the sensors. For example, the situation acquisition unit 102 can also acquire the current situation by parsing an image received from a vision sensor.
[0094] For example, the status acquired by the status acquisition unit 102 is the current quantity of objects positioned at the third placement location P3 in the control system 1. The status acquisition unit 102 acquires the configuration number variable contained in the status data D2. For example, the status acquired by the status acquisition unit 102 is the status of the second device 40 and the third device 50 respectively. The status acquisition unit 102 acquires the status of the second device 40 and the third device 50 respectively by acquiring the status variable contained in the status data D2.
[0095] [Device Control Unit]
[0096] The device control unit 103 dynamically determines the next process to be executed among multiple processes based on the settings saved by the setting storage unit 101 and the status acquired by the status acquisition unit 102, and controls multiple devices. For example, the device control unit 103 determines the next process to be executed as it relates to one of the second device 40 or the third device 50. The device control unit 103 determines which of the multiple objects to be executed next and which process pertains to which object.
[0097] In other words, the device control unit 103 determines the next object and process combination to be executed from among multiple object combinations and multiple process combinations. When the total number of objects in the control system 1 is set to k (k is an integer greater than or equal to 2), Figure 4 In the case of k=13), the total number of operations performed on an object is set to m (m is a natural number, m=6 in the first embodiment). Then, considering the overall control system 1, the combinations of objects and operations are k×m. Figure 4 In the case of 13 × 6 = 78 combinations, the execution order of k × m combinations is not specified by the user, but is dynamically determined on-site by the device control unit 103.
[0098] For example, the device control unit 103 executes a control program and determines, based on the status data D2, whether the various execution conditions contained in the setting data D1 are met. If the execution conditions for a particular process are met, the device control unit 103 sends an instruction to the device executing that process to begin that process. This instruction may be a command indicating identification information of the process to be executed, or it may be an instruction to change a start variable associated with the process procedure described later to a predetermined value. Furthermore, the instruction may also include information identifying which object the process is for. For example, in the case of performing a changeover adjustment process, by including this information, the robot controller 20 can determine which object in the first placement location P1 needs to be held. Similarly, for the third major process, the robot controller 20 can determine which object in the third placement location P3 needs to be held.
[0099] In the first embodiment, the multiple devices include one or more robots 24 that perform a movement process that moves an object between the multiple devices. Therefore, based on the settings saved by the setting storage unit 101 and the status acquired by the status acquisition unit 102, the device control unit 103 determines the movement process of the robot 24 as the next process to be executed when a process of one device is completed, so as to execute other processes of other devices.
[0100] For example, the movement process that moves the object from the second device 40 to the third placement location P3 is one of the processes included in the internal production changeover adjustment process. When the processing process for the object is completed in the second device 40, the device control unit 103 determines the movement process of the robot 24 moving the object from the second device 40 to the third placement location P3 as the next process to be executed, so as to execute the processing process of the third device 50.
[0101] For example, the movement process that moves the object from the third device 50 to the fourth device 60 is one of the processes included in the final process. When the third device 50 has completed its processing step for the object, the device control unit 103 determines the movement process by which the robot 24 moves the object from the third device 50 to the fourth device 60 as the next process to be executed, and then performs the cleaning process in the fourth device 60. Other movement processes are similar; the movement process is executed to move the object whose process in one device has been completed to the device in the next process.
[0102] For example, the device control unit 103 may determine the next step to be executed based on the settings saved by the setting storage unit 101, so as to execute two or more steps for a single object according to the execution order contained in the settings. The device control unit 103 determines the next step to be executed based on the settings of the robot 24, so as to maintain the execution order contained in the setting data D1 for a single object.
[0103] For example, when the processing step of the second device 40 is completed, the device control unit 103 determines the next step to be performed: the movement step in which the robot 24 moves the object from the second device 40 to the third placement location P3, so as to perform the processing step of the third device 50. When the processing step of the third device 50 is completed, the device control unit 103 determines the next step to be performed: the movement step in which the robot 24 moves the object from the third device 50 to the fourth device 60, so as to perform the cleaning step of the fourth device 60.
[0104] In the first embodiment, there is a third placement location P3 where multiple objects are placed, waiting for the execution of one or more subsequent processes (the processing process of the third device 50 in the third major process). Therefore, the device control unit 103 determines the movement process of the robot 24 as the next process to be executed based on the settings saved by the setting storage unit 101 and the status acquired by the status acquisition unit 102. If the preceding process (the processing process of the second device 40 in the second major process) before the subsequent process is completed, the object is moved to the third placement location P3. If the subsequent process is executed, the object is moved from the third placement location P3.
[0105] For example, the status data D2 shows the current quantity of objects placed in the third placement location P3 in the control system S. If the current quantity reaches the upper limit, the device control unit 103 will not determine the preceding process (the processing step of the second device 40 in the second major process) as the next process to be executed; if the current quantity has not reached the upper limit, it can determine the preceding process as the next process to be executed. The device control unit 103 determines whether the value represented by the placement number variable in the status data D2 has reached the upper limit. Furthermore, subsequent processes and preceding processes are not limited to the examples described above. A subsequent process can be any process that is executed relatively later in the order of execution. A preceding process can be any process that is executed relatively earlier in the order of execution.
[0106] For example, the device control unit 103 determines whether the current quantity of objects awaiting the execution of the third major process has reached the upper limit based on the unit quantity information contained in the setting data D1 and the configuration number variable contained in the status data D2. If the current quantity of objects awaiting the execution of the third major process has reached the upper limit, the device control unit 103 does not determine the process preceding the third major process as the next process to be executed. For example, if the configuration number variable has not reached the upper limit, the device control unit 103 can determine the preceding process before the processing process of the third device 50 as the next process to be executed. Here, the case where the moving process that moves the object to the third device 50 is equivalent to the preceding process will be explained, but the preceding process can also be a process that comes even further back.
[0107] In the first embodiment, as one of the execution conditions for the processing step of the third device 50, it is determined that the current quantity has not reached the upper limit quantity. Therefore, the device control unit 103 determines the movement step of the object relative to the third device 50 as the next step to be executed. Furthermore, although the device control unit 103 satisfies this condition, it is not mandatory to execute the movement step of the object relative to the third device 50. If other conditions for this step are not met, the step will not be executed. The condition that the current quantity has not reached the upper limit quantity is sufficient. Alternatively, for example, the device control unit 103 may execute other steps if the execution conditions of other steps with higher priority are met.
[0108] [1-3-2. Functions implemented by devices such as robot controllers]
[0109] In each of the robot controller 20, the first device 30, the second device 40, the third device 50, and the fourth device 60, data storage units 200, 300, 400, 500, and 600, and process execution units 201, 301, 401, 501, and 601 are implemented. The data storage units 200, 300, 400, 500, and 600 are mainly implemented by storage units 22, 32, 42, 52, and 62, respectively. The process execution units 201, 301, 401, 501, and 601 are mainly implemented by CPUs 21, 31, 41, 51, and 61, respectively.
[0110] Furthermore, while the data storage unit 200 and the process execution unit 201 will be described below, the process flow itself is the same for both devices. Therefore, the data storage units 300, 400, 500, and 600, and the process execution units 301, 401, 501, and 601 can be the same as the data storage unit 200 and the process execution unit 201, respectively. Simply replace the data storage unit 200 with the data storage units 300, 400, 500, and 600, and replace the process execution unit 201 with the process execution units 301, 401, 501, and 601.
[0111] [Data Storage Department]
[0112] The data storage unit 200 stores the data required to execute the process. For example, the data storage unit 200 stores the process program. The process program is prepared for each process. The process program defines each action in the process. For example, the data storage unit 200 stores variables that are referenced or modified through the process program. It is assumed that these variables include variables that become the execution conditions of the process program. For example, for each process program, a start variable for starting the execution of the process and an end variable for indicating the end of the execution of the process may be prepared. Alternatively, the end variable may be omitted. The execution of the process program is not controlled by variables, but may also be controlled according to instructions from the superior control device 10.
[0113] [Process Execution Department]
[0114] The process execution unit 201 executes processes based on process procedures. In the first embodiment, since start variables and end variables are prepared for each process procedure, the process execution unit 201 monitors whether the start variable has become a predetermined value. When the start variable of a process procedure receives an instruction from the upper-level control device 10 indicating that the start variable should be set to a predetermined value, it is changed to the predetermined value. The change of the start variable can be implemented by a function block other than the process execution unit 201. When the process execution unit 201 detects that the start variable has become a predetermined value, it executes the process procedure corresponding to that start variable, thus beginning the execution of the process. When the started process ends, the process execution unit 201 changes the end variable of the process procedure corresponding to that process to the predetermined value. The process execution unit 201 notifies the upper-level control device 10 that the execution of the process has been completed. Afterward, the start variable returns to its initial value at a predetermined time.
[0115] [1-3-3. Functions achieved by engineering devices]
[0116] like Figure 5 As shown, the engineering device 70 includes a data storage unit 700, a display control unit 701, and a receiving unit 702. The data storage unit 700 is mainly implemented by a storage unit 72. Each of the display control unit 701 and the receiving unit 702 is mainly implemented by a CPU 71.
[0117] [Data Storage Department]
[0118] The data storage unit 700 stores the data required for setting up the control system 1. For example, the data storage unit 700 stores engineering tools. Engineering tools are tools used to assist users in setting up operations. For example, engineering tools are used for various purposes such as creating various programs such as control programs and process programs, setting parameters, setting communication between devices, defining registers, or defining variables. For example, the data storage unit 700 can also store backups of programs and parameters created by the user using engineering tools.
[0119] [Display Control Department]
[0120] The display control unit 701 causes the display unit 75 to display a setting screen for making settings using engineering tools. Figure 8 This is an example image representing a settings screen. For example... Figure 8 As shown, the setting screen G1 is a graphical user interface used to specify the values of the various items included in the setting data D1. Users can input arbitrary values into the setting screen G1. Additionally, although in Figure 8 Although omitted in the text, it serves as an execution condition for a process and can specify variables and other conditions.
[0121] [Acceptance Department]
[0122] The receiving unit 702 accepts various operations performed by the user. For example, the receiving unit 702 accepts the specified values for each item on the setting screen G1. The engineering device 70 generates setting data D1 based on the values received by the receiving unit 702 and writes it to the data storage unit 100 of the upper-level control device 10. The setting data D1 may also be stored in the data storage unit 700.
[0123] [1-4. Processes performed in the control system]
[0124] Figure 9 This is a flowchart illustrating an example of a process performed by control system 1. Figure 9 The diagram illustrates the processing executed by the higher-level control device 10 within the processing executed by the control system 1. This processing is performed by the CPU 11 executing the control program stored in the storage unit 12. Figure 9 The processing is shown. Figure 9 The process shown is by Figure 5 The example shown is an example of the processing performed by the function block.
[0125] like Figure 9 As shown, the upper-level control device 10 stores setting data D1 in the storage unit 12 (S1) and updates the status data D2 stored in the storage unit 12 to indicate the current status in the control system 1 (S2). In S2, for example, the upper-level control device 10 updates the status data D2 based on the communication content with devices such as the robot controller 20. For example, the upper-level control device 10 updates the status data D2 based on the execution result of the control program.
[0126] The upper-level control device 10 acquires the updated status data D2 (S3) and determines whether the execution conditions for each process are met based on the setting data D1 stored in S1 and the updated status data D2 acquired in S3 (S4). In S4, as described above, it is determined whether the execution conditions are met for each process. For example, if it is the process of removing the object from the second device 40 in the internal production change adjustment process, the upper-level control device 10 determines whether the execution conditions are met based on the number of units represented by the setting data D1 and the configuration number variable represented by the status data D2. Details of this determination method will be described later.
[0127] If a process that meets the execution conditions exists (S4; Yes), the upper-level control device 10 determines the process that meets the execution conditions as the next process to be executed and controls the robot controller 20 and other devices (S5). In S5, the upper-level control device 10 sends an instruction to the device that executes the process that meets the execution conditions to start the process (e.g., an instruction to change the start variable of the process program to a specified value).
[0128] On the other hand, if no process meets the execution conditions (S4; No), the upper-level control device 10 determines whether the prescribed termination condition is met (S6). The termination condition can be any condition used to end this process. For example, if the control program is created using ladder diagram language, executing the last command described in ladder diagram language is equivalent to meeting the termination condition. For example, if the total number of objects is predetermined, completing all six processes for all objects and making them all finished products is equivalent to meeting the termination condition. If the termination condition is not met (S6; No), the process returns to S2, and processes for objects that have not yet become finished products are executed. If the termination condition is met (S6; Yes), this process ends.
[0129] As explained above, the control system 1 of the first embodiment includes multiple devices that independently execute at least one of the multiple processes for multiple objects that are to be subjected to multiple processes. The control system 1 dynamically determines the next process to be executed among the multiple processes based on user-specified settings related to the execution conditions of at least one of the multiple processes and the current state of the control system 1, and controls the multiple devices. This allows multiple processes for multiple objects to be executed simultaneously and in parallel, thus improving the operating efficiency of the control system 1. For example, it is also possible to manually specify the execution order of each of the multiple processes to control the process efficiently by having the program creator predict the time required for each process. However, for each of the multiple objects, in the control system 1 where each of the multiple processes is executed simultaneously and in parallel, there are countless possible schedules, making it difficult to predict which execution order would improve operating efficiency. For example, if there is a situation where the time predicted by the creator differs from the actual time required by the control system 1, and there is a process that unexpectedly requires time, the next process cannot begin until that process is completed, potentially leading to low operating efficiency of the control system 1. In this regard, according to control system 1, the process is not executed according to the static execution order specified by the creator, but the execution order of the process is dynamically determined according to the status of control system 1, thus improving the operating efficiency according to the actual status of control system 1.
[0130] Furthermore, the multiple devices of the control system 1 include one or more robots 24 that perform movement operations that move an object between the multiple devices. When a movement operation of one device is completed, the control system 1 determines the movement operation of the robot 24 as the next operation to be performed, thereby executing other operations of other devices. Thus, even if the object in the control system 1 has a high degree of freedom of movement, it can still be moved, thereby increasing the overall operating efficiency.
[0131] Furthermore, the settings in control system 1 include the execution sequence of two or more processes for a single object. There is a movement process between these two or more processes. Control system 1 determines the movement process of robot 24 as the next process to be executed, thus executing two or more processes for a single object according to the execution sequence included in the settings. Therefore, by dynamically executing processes in accordance with the execution sequence for a single object, the operating efficiency of control system 1 is improved, and processes for a single object can be executed according to the intended execution sequence.
[0132] Furthermore, in control system 1, there is a third placement location P3 where multiple objects are positioned, awaiting the execution of one or more subsequent processes. Control system 1 determines the movement process of robot 24 as the next process to be executed, so that if the preceding process is completed before the subsequent process, the objects are moved to the third placement location P3, and if the subsequent process is executed, the objects are moved from the third placement location P3. This prevents situations where the preceding process cannot be executed before the subsequent process is completed, thus improving the operating efficiency of control system 1.
[0133] Furthermore, the setting in control system 1 is the upper limit number of objects that can be configured in the third placement location P3. The status is the current number of objects configured in the third placement location P3 in control system 1. If the current number reaches the upper limit, control system 1 will not determine the preceding process as the next process to be executed; if the current number has not reached the upper limit, it can determine the preceding process as the next process to be executed. This prevents the third placement location P3 from being filled. As a result, for example, it can prevent errors from occurring and stopping in control system 1 due to the inability to configure objects in the third placement location P3, or prevent objects in the third placement location P3 from coming into contact with each other. For example, after the current configuration number reaches the upper limit, other processes that do not affect the number of objects waiting for processing by the third device 50 in the third major process are executed until the current configuration number decreases, thereby improving the operating efficiency of control system 1.
[0134] [2. Second Implementation]
[0135] In the second embodiment, the structure that solves problem point 2 (the order of steps not marked) will be described. In the second embodiment, the description of structures that are the same as those in the first embodiment is omitted.
[0136] As described in the first embodiment, the processing steps of the second device 40 and the third device 50 require significantly more time than other processes. Therefore, by maximizing the full operation of the second device 40 and the third device 50, the overall operating efficiency of the control system 1 is improved. Furthermore, since the processing steps of the third device 50 require more time than those of the second device 40, fully operating the third device 50 further enhances the overall operating efficiency of the control system 1.
[0137] Figure 10 This is an explanatory diagram for issue point 2 (the order of processes is not marked). Figure 10 In this example, let's assume that the processing step of the first object by the third device 50 has been completed. In this case, in order to make the third device 50 fully operational, it is best to remove the first object from the third device 50 as early as possible and install the second object on the third device 50.
[0138] However, if the priority order of each process is not marked, executing other processes will not improve the operating efficiency of the third device 50. For example, if the process of moving the second object is not executed, but the process of moving the third object is executed instead, the third device 50 will remain in a ready state and standby during this period, thus reducing the operating efficiency of the third device 50 accordingly.
[0139] Therefore, the upper-level control device 10 in the second embodiment solves problem 2 by assigning the highest priority to the processing steps of the third device 50, thereby ensuring the full operation of the third device 50 and improving the operating efficiency of the control system 1. Through this priority ordering, when the processing of an object by the third device 50 and the removal of the object from the third device 50 have been performed, all processes up to the installation of the object into the third device 50 are immediately executed with priority over the subsequent installation of the object into the object. The details of the control system 1 in the second embodiment will be described below.
[0140] Figure 11 This is a diagram illustrating an example of a functional block diagram in the second embodiment. For example... Figure 11 As shown, in the second embodiment, in addition to the functions described in the first embodiment, a determination unit 104 and a notification unit 105 are also implemented. The determination unit 104 and the notification unit 105 are mainly implemented by the control unit 11. Other functions are largely the same as in the first embodiment, but some functions are different from those in the first embodiment.
[0141] For example, the settings saved by the setting storage unit 101 are priority sequences corresponding to the execution time of the processes. Figure 6In the example, since priority information is included in the setting data D1, the setting storage unit 101 saves the priority information of the setting data D1 as a setting. The setting storage unit 101 saves the priority information of the processing steps of the second device 40 and the processing steps of the third device 50. If priority information is set in other steps, the setting storage unit 101 saves the priority information of those other steps. In the second embodiment, the higher the time represented by the time information, the higher the priority. The priority can also be determined by other factors. For example, if a certain step is performed multiple times, the more times it is performed, the higher the priority can be.
[0142] In the second embodiment, the status acquired by the status acquisition unit 102 is the execution status of the third major process, which has a relatively high priority among multiple processes. The third major process is an example of a priority process. Therefore, the part describing the third major process can be replaced with a priority process. A priority process is a process with a relatively high priority compared to other processes. A priority process has a higher priority than one or more other processes. A priority process is not limited to the process with the highest priority; it can also be a process with the second or subsequent priority. For example, the second major process can also be equivalent to a priority process.
[0143] In the second embodiment, when the third major process for a given object is completed, the device control unit 103 determines the movement process associated with the third major process as the next process to be executed, so that the object is moved from the third device 50 that performed the third major process, and other objects are moved to the third device 50. For example, the device control unit 103 determines the next process to be executed, so that object A, whose processing process in the third device 50 in the third major process is completed, is moved from the third device 50, and all processes up to the processing process in the third device 50 in the third major process are continuously executed for the next object B. Furthermore, the next object refers to an object that has been taken out of the first placement location P1 one position after that. If the aforementioned object is the kth object, then the (k+1)th object is equivalent to the next object.
[0144] For example, when the third major process is completed, the device control unit 103 prioritizes the movement process associated with the third major process as the next process to be executed, compared to movement processes associated with processes with relatively lower priority. That is, when there are multiple executable movement processes in the control system 1, the device control unit 103 prioritizes executing the movement process that moves the object from the third device 50 and the movement process that moves other objects to the third device 50 among the multiple executable movement processes, compared to other movement processes.
[0145] Furthermore, the device control unit 103 can also perform actions other than the movement action of removing the object from the third device 50, provided that the processing step of the third device 50 has not been completed. Assume that such an execution condition is determined in the setting data D1. During the execution of the processing step of the third device 50, actions other than removing the object from the third device 50 in the completion process are performed. The actions that can be executed can be any actions. The actions that can be executed are not mandatory; they only need to be allowed to be executed.
[0146] For example, the device control unit 103 may also execute processes other than the movement process that moves the object to the third device 50, provided that the preparation of the processing step of the third device 50 is not completed and the movement process that moves the object to the third device 50 is not completed. It is assumed that such execution conditions are determined in the setting data D1. As described above, the processes that can be executed can be arbitrary.
[0147] Furthermore, the method of prioritizing the processing steps of the third device 50 with a relatively high priority is not limited to the examples described above. For instance, the device control unit 103 may also determine whether the execution conditions are met according to the priority of the steps from high to low, and execute the steps that meet the execution conditions. The device control unit 103 may also execute the steps with a relatively high priority when there are multiple steps that meet the execution conditions.
[0148] The determination unit 104 determines whether the execution time of the third major process is above a threshold. The threshold can be specified by the user or be a predetermined fixed value. The determination unit 104 starts timing processing after the execution of the third major process begins, and determines whether the time from the start of the execution of the third major process to the current time point is above the threshold. The determination unit 104 can also measure the non-operation time of the third device 50 corresponding to the third major process, and determine whether the non-operation time is above the threshold.
[0149] The notification unit 105 notifies the user when the determination unit 104 determines that the execution time exceeds a threshold. The notification can be delivered using any means, such as email, information output to the engineering device 70, alarm output using LED lights, or sound output. The notification unit 105 can also notify the user when the inactivity time exceeds a threshold.
[0150] In the second embodiment, when the processing step of a single object is completed by the third device 50, the control system 1 determines the movement step associated with the third major process as the next step to be executed, so that the single object is moved from the third device 50 and other objects are moved to the third device 50. This allows the processing steps of the third device 50, which have a relatively high priority in the third major process, to be executed first, thus further improving the operating efficiency of the control system 1.
[0151] Furthermore, when the third major process is completed, the control system 1 prioritizes the movement process associated with the third major process as the next process to be executed, compared to movement processes associated with processes of relatively lower priority. This allows the object to be quickly moved to the third device 50, where the processing process with the relatively higher priority is executed. As a result, the operating efficiency of the control system 1 is further improved.
[0152] Furthermore, if control system 1 determines that the execution time of the third major process exceeds a threshold, it will notify the user. This makes it easier for the user to notice that the execution of the third major process, which has a relatively high priority, requires time. Since there is room for modification in the settings of control system 1, the user can easily investigate any potential changes.
[0153] [3. Third Implementation Method]
[0154] The processing in the first and second embodiments is not actually the processing that causes the device to operate; it can also be executed as processing on a simulator. That is, the processing in the first and second embodiments can also be the processing in the case where a virtual upper-level control device 10 on the simulator virtually controls a device such as a virtual robot controller 20 on the simulator. In the third embodiment, the description of the same structure as in the first and second embodiments is omitted.
[0155] A simulator is a program used to simulate various processes. In the third embodiment, the case where the simulator is installed on the engineering device 70 is described, but the simulator can also be installed on other devices such as the upper-level control device 10. Furthermore, the case where the simulator is part of the engineering tools is described, but the simulator can also be a program different from the engineering tools. For example, when the user selects… Figure 8 When button B10 is pressed on the settings screen G1, a simulation screen for performing the simulation is executed on the display unit 75.
[0156] Figure 12This is an example diagram representing a simulation screen. Simulation screen G2 displays chart C20, virtual space V21, list L22, and buttons B23 and B24. For example, when the user selects button B23, the simulation begins. The simulation result is displayed as an animation in simulation screen G2. When the user selects button B24, the user returns to the settings screen G1. The user can then refer to the simulation result to reset the settings.
[0157] Chart C20 is a graph representing the simulation results of the time series. Chart C20 can also be referred to as a time plot or a Gantt chart. Figure 12 In the example, the second device 40, the third device 50, the robot 24, and the peripheral devices are shown in diagram C20, but any device can be shown in diagram C20. The device shown in diagram C20 can also be specified by the user. The device names are arranged vertically in diagram C20. The horizontal axis of diagram C20 is the time axis.
[0158] Chart C20 is not limited to Figure 12 Examples of layouts are possible, such as arranging device names horizontally and the timeline vertically. Furthermore, for instance, process names can be displayed in diagram C20, or the execution status of processes for each object can be displayed in diagram C20. Virtual space V21 is a space that reproduces the configuration of devices in the real space. The configuration of devices in virtual space V21 can also be specified by the user. The names of each process are displayed in list L22.
[0159] In the third embodiment, a simplified simulation is performed by replacing the processing of the control program actually executed by the upper-level control device 10 with other processing, thereby speeding up the simulation. Hereinafter, a control program created using ladder logic is used as an example, but the same applies to control programs created using other languages such as robot languages; the processing within the control program can be replaced with other processing. The simulation is not limited to a simplified simulation; it can also be a detailed simulation that more faithfully reproduces the processing of the control program. The program representing the processing steps in the simulator is not generated based on the control program as in the third embodiment; it can also be created by the user.
[0160] Figure 13 This diagram illustrates an example of a simplified simulation implementation. Figure 13 The ladder diagram of the control program is shown in the figure. Figure 13 The "H diagram" is the top-level diagram in a ladder diagram. For example, the "H diagram" can be used with the SEE command to call lower-level diagrams. If it is... Figure 13 For example, the "H diagram" can call the "H01 diagram" which is a lower-level diagram using a command like "SEE H01". The "H01 diagram" can also call even lower-level diagrams.
[0161] exist Figure 13 In the example, the diagram at level 2 of the "H diagram" contains the specific processing used to control the robot controller 20, etc. For example, if the data D1 is set to... Figure 6 The initial process performed was a changeover adjustment procedure that was expected to take 10 seconds. Therefore, the "H01.01 diagram" which corresponds to the changeover adjustment procedure includes a process equivalent to 10 seconds. For example, if a peripheral device such as a transport robot transports an object to the first placement location, the series of processes that move the peripheral device to the first placement location P1 and place the box containing the object in the first placement location P1 are included in the "H01.01 diagram".
[0162] In the third embodiment, the 10-second processing included in "H01.01 diagram" is replaced with a timer command (in... Figure 13 (The middle part is "TON"). Users in Figure 6 In the setting screen G1, 10 seconds is specified in the production changeover adjustment process. Therefore, it can also be replaced with a 10-second timer command. However, in the third embodiment, in order to speed up the simulation, it is assumed that it is replaced with a timer command that is compressed in a shorter time. For example, the engineering device 70 replaces the timer command based on the minimum planned time and the minimum scan period.
[0163] The planned time is the time required to execute each process. The user specifies the planned time in the setting screen G1. The planned time can be any value, but in the third embodiment, it is assumed to be an integer multiple of a specified minimum value. The minimum planned time can be any value; here, it is set to 5 seconds. The scan period is the processing cycle of the control program. The control program performs processing during each scan period. The minimum scan period can be any value; here, it is set to 4 milliseconds. The minimum planned time and the minimum scan period can each be specified by the user or be fixed values.
[0164] For example, the equivalent of 10 seconds of processing for "H01.01 diagram" is a process that doubles the minimum planned time of 5 seconds. Therefore, this process is replaced by an 8-millisecond timer command that doubles the minimum scan period of 4 milliseconds. Figure 13 The middle part is "TON8ms"). Similarly, the 70-second processing of "H01.02 diagram" which is equivalent to the first major process is a process that sets the minimum planned time of 5 seconds to 14 times the time, and is therefore replaced by a 56-millisecond timer command that sets the minimum scan period of 4 milliseconds to 14 times the time (in Figure 13The "TON56ms" in the middle). The processing equivalent to 1800 seconds in the "H01.03 diagram" of the second major process is the processing of the minimum planned time of 5 seconds multiplied by 360. Therefore, it is replaced by a timer command of 1440 milliseconds, which is the minimum scan period of 4 milliseconds multiplied by 360. Figure 13 The value in the middle is "TON1440ms".
[0165] The engineering device 70 replaces all processes with timer commands of compressed time as described above. Processes for which the user has not specified a planned time can be replaced with timer commands of a pre-set time, or, after predicting the planned time based on the processing content, the predicted planned time can be replaced with timer commands of compressed time.
[0166] If the engineering device 70 executes a simplified simulation by replacing the planned time with a compressed time in a timer command, it can utilize various known simulation methods. If it is... Figure 6 The planned time is 5540 seconds to complete all processes for a certain object. By compressing the planned time, the simulation of all processes for that object can be completed in (5540 seconds / 5 seconds) * 4 milliseconds = 4432 milliseconds. The simulation results are displayed on simulation screen G2.
[0167] Figure 14 This diagram illustrates an example of how the display of chart C20 changes in simulation screen G2. Figure 14 In the diagrams, as with charts C20A to C20F, a letter is added to the end of C20 to represent the time-series changes in chart C20. When charts C20A to C20F are not specifically distinguished, they are simply recorded as chart C20. Similarly, when process images P200A to P200E are not distinguished, they are simply recorded as process image P200.
[0168] At the start of the simulation, no operation is executed on any device, therefore, as shown in Figure C20A, operation image P200 is not displayed in Figure C20. If the simulation begins, a changeover adjustment operation based on peripheral devices is initially executed. Therefore, as shown in Figure C20B, operation image P200A, representing the changeover adjustment operation being executed, is displayed in the peripheral device row. The horizontal width of operation image P200A corresponds to the planned time of the changeover adjustment operation.
[0169] For example, if the planned time for the changeover adjustment process is set to 10 seconds, then the horizontal width of process image P200A becomes equivalent to 10 seconds. Since the planned time for the changeover adjustment process is very short compared to other processes such as the second major process, it is actually... Figure 14Compared to other examples, the horizontal width is shorter, but in order to improve the visibility of the process image P200A in the figure, in Figure 14 In this context, compared to the actual time, the horizontal width of process image P200A is increased. The same applies to other process images P200; the horizontal width of a process image P200 for a given process becomes the length corresponding to the planned time of that process, but... Figure 14 In order to improve the visibility of the image, the length was adjusted.
[0170] When the changeover adjustment process is completed, the first major process for the first object is executed. The operation of the first device 30 is not shown in diagram C20, but the first major process relates not only to the first device 30 but also to the robot 24. Therefore, as shown in diagram C20C, the process image P200B representing the first major process being executed is displayed in the row for robot 24. The planned time for the first major process is 70 seconds, therefore process image P200B has a horizontal width of 70 seconds. This 70 seconds includes not only the time required for the robot 24 but also the time required for the operation of the first device 30, but... Figure 14 In this context, let's assume the action of robot 24 is represented.
[0171] When the first major process for the first object is completed, the second major process for the first object is executed. Therefore, as shown in Figure C20D, the process image P200C, which represents the second major process being executed, is displayed in the row of the second device 40. When the second major process for the first object is completed, the internal changeover adjustment process and the third major process for the first object are executed consecutively. The internal changeover adjustment process is executed by robot 24, and the third major process is executed by the third device 50. Therefore, as shown in Figure C20E, the process image P200D, which represents the internal changeover adjustment process being executed, is displayed in the row of robot 24, and the process image P200E, which represents the third major process being executed, is displayed in the row of the third device 50.
[0172] Similarly, when the final operation of the first object is executed, and subsequent operations are executed, as shown in Figure C20F, process images P200 are displayed, representing the sequential execution of each operation for each object in time. In Figure C20F, due to the large number of process images P200, the letters following P200 are omitted. During the period before the simulation is completed, process images P200 are displayed sequentially on Figure C20.
[0173] The virtual space V21 moves objects in a manner corresponding to the display of the process image P200 in diagram C20. The robot 24 in the simulation screen G2 can also perform animations to move objects. The list L22 can also change the color of the currently executing process. As described above, in the third embodiment, simulation is used to assist the user in planning the process. The details of the third embodiment will be described below.
[0174] Figure 15 This is a functional block diagram of the third embodiment. The engineering apparatus 70 can realize a setting storage unit 703, a status acquisition unit 704, and an apparatus control unit 705. These are mainly implemented by the control unit 71.
[0175] The control system 1 includes a simulator that virtually executes multiple processes. A data storage unit 700 stores the simulator. The data storage unit 700 also stores setting data D1 and status data D2. The status data D2 represents the virtual status of each device on the simulator. The setting data D1 of the data storage unit 700 is the same as the setting data D1 of the data storage unit 100.
[0176] The setup in the third embodiment includes a layout representing the configuration of multiple devices. For example, the layout is the configuration of each device in a virtual space V21. The virtual space V21 can be represented in either three-dimensional space or a two-dimensional plane. The layout includes the name of each device and the coordinates representing the position of that device. The user can specify the name and position of each device. The simulator calculates the movement time required for the movement process based at least on the layout.
[0177] For example, the simulator calculates the distance between the starting point and the ending point of an object in a movement process. The starting point is the position of the object at the beginning of the movement process. The starting point can also be called the departure point of the object in the movement process. The ending point is the position of the object at the end of the movement process. The ending point can also be called the destination point of the object in the movement process. It is assumed that the starting point and ending point in the movement process are represented in the control program or a simulation program created using the control program. The simulator calculates the movement time by dividing the distance between the coordinates of the starting point and the coordinates of the ending point by a specified movement speed. Furthermore, the movement time in a movement process is not based on the layout and can be a predetermined fixed value.
[0178] For example, set the execution time for at least one process. This execution time is the aforementioned planned time. If it is... Figure 6For example, in the data storage example, the execution time is shown in the time information. The simulator, as a virtual execution for at least one process, executes timer processing corresponding to the execution time. As described above, the simulator replaces the processing shown by the control program with timer processing corresponding to the execution time, and performs the simulation. Timer processing corresponding to the execution time is timer processing where the time represented by the timer processing is proportional to the execution time.
[0179] For example, the execution time of at least one step is an integer multiple of a predetermined minimum time. The simulator performs timer processing based on a value obtained by multiplying the execution time of at least one step by the minimum time by the minimum scan time, where the scan time represents the processing cycle of the control program used to control multiple devices. It is assumed that the minimum time and the scan time are stored in the data storage unit 700. As described above, the simulator replaces the control program processing with timer processing containing the value corresponding to the above calculation, and performs the simulation.
[0180] The data storage unit 700 stores the execution results of the simulator. Therefore, the data storage unit 700 functions as a result storage unit. The data storage unit 700 stores the simulator's execution results for each setting specified by the user. For example, the data storage unit 700 stores the predicted time required to complete all processes as the simulator's execution result. The data storage unit 700 can also store the start and end times of each device's process as the simulator's execution result. The data storage unit 700 can also store other calculation results from the simulator as the simulator's execution result.
[0181] The status acquisition unit 704 acquires the status on the simulator. During the simulation process, the status acquisition unit 704 acquires the simulation results from the simulator. Based on the settings saved by the setting storage unit 703 and the status on the simulator, the device control unit 705 dynamically determines the next procedure to be executed in the simulator and controls the simulator. The processing of the device control unit 705 differs from that of the device control unit 103 of the upper-level control device 10 in terms of simulation processing, but is otherwise the same as that of the device control unit 103.
[0182] The display control unit 701 displays a simulation screen G2 that indicates the execution results of the simulator. For example, if the user changes the settings, the display control unit 701 can also compare the simulator results corresponding to the settings before the change and the simulator results corresponding to the settings after the change on the simulation screen G2 based on the execution results recorded in the data storage unit 700. The ability to compare the simulator results before and after the change is not limited to displaying both on a single simulation screen G2, but also includes displaying both on multiple simulation screens G2. For example, the display control unit 701 can also compare the simulation results before and after the change by calculating the time required until the end of the entire process before and after the change of settings and displaying both times.
[0183] For example, the display control unit 701 can also display process images P200, representing the start and end times of each process in the simulation, on a time-axis graph C20 in the simulation screen G2. The left end of the process image P200 in the graph C20 indicates the start time of the process. The right end of the process image P200 indicates the end time of the process. The length of the time axis of the process image P200 is the length from the start time to the end time. The start and end times of the processes can be represented in any way; for example, the individual values of the start and end times can also be displayed on the simulation screen G2.
[0184] For example, the display control unit 701 can also display the execution result of the simulator as an animation. The display control unit 701 can slow down the playback speed of the animation for at least one of multiple processes. The process for which the animation is slowed down can be any process, can be specified by the user, or can be automatically selected based on settings. In the third embodiment, it is assumed that the animation of a process whose time represented by the time information is relatively long is slowed down. Here, it is assumed that the animation of the process image P200 representing the processing process performed by the third device 50 is slowed down. It is also possible to slow down the animation only near at least one of the start time point and the end time point of the process image P200. In addition, for example, the animation in the virtual space V21 can also be slowed down. The method of slowing down the animation itself can utilize various known methods, for example, it can also utilize the method of reducing the playback speed in the animation playback software.
[0185] In the third embodiment, the control system 1 dynamically determines the next procedure to be executed in the simulator based on user-specified settings and the status of the simulator, and controls the simulator. The control system 1 displays a simulation screen G2 indicating the execution results of the simulator. This facilitates the design of procedures. If the user observes inefficiencies in the simulation results on the simulation screen G2, they can reconsider the settings in the control system 1.
[0186] Furthermore, the simulator calculates the movement time required for the moving process based on at least a layout representing the configuration of multiple devices. This allows for more accurate simulation of movement time, thus improving simulation precision. As with control system 1, where processes are dynamically determined, the high degree of freedom in the combination of moving processes makes it difficult to predict their execution time when robot 24 performs movement between processes. In this regard, calculating the movement time using a simulator improves the predictability of the movement process's execution time. It also allows for better adjustment of optimal settings.
[0187] Furthermore, when the user changes the settings, the control system 1 displays the simulator results corresponding to the settings before the change and the simulator results corresponding to the settings after the change on the simulation screen in a comparative manner. This makes it easy to compare the simulation results before and after the setting change and to understand whether the setting change is effective.
[0188] Furthermore, the control system 1 displays process images P200 on a time-axis graph C20 in the simulation screen G2, showing the start and end times of each process in the simulation. This allows for easy visual understanding of the start and end times of each process in the simulation on the graph C20, facilitating process design.
[0189] In addition, the simulator executes timer processing corresponding to the execution time as a virtual execution for at least one process. Therefore, users can complete this without creating a simulation application.
[0190] Furthermore, the simulator performs timer processing based on a value obtained by multiplying the execution time of at least one step by the minimum time by the minimum scan time, where the scan time represents the processing cycle of the control program used to control multiple devices. This allows for rapid simulation completion and improves user convenience.
[0191] Furthermore, the control system 1 slows down the animation playback speed for at least one of the multiple processes. As a result, the animation playback speed is reduced for specific parts, allowing the user to carefully review the simulation results for the areas they wish to focus on.
[0192] [4. Fourth Implementation Method]
[0193] In the fourth embodiment, the structure for solving problem point 3 (without considering the end time) will be described. In the fourth embodiment, the description of the structure that is the same as that in the first to third embodiments is omitted.
[0194] Figure 16 This is an explanatory diagram for problem point 3 (without considering the end time). In the fourth embodiment, the explanation will also take the case of improving the operating efficiency of the third device 50 as an example. Figure 16 In this example, it is assumed that the third device 50 is performing the processing step for the third object. Additionally, it is assumed that the fourth device 60 has completed the cleaning step for the second object, and the second device 40 has completed the processing step for the ninth object.
[0195] In this situation, to ensure the third device 50 operates fully, it is best to immediately execute the process of removing the object from the third device 50 after the third device 50 has completed its processing step for the third object. However, if the end time of the processing step of the third device 50 is not considered, executing other processes just before the processing step of the third device 50 is about to be completed may prevent the immediate removal of the third object. Furthermore, for example, if the second object, after its cleaning step, remains in the state of being positioned in the fourth device 60, the third object cannot be removed immediately. In this case, since the state of the third device 50 being completed continues for a period of time, the operating efficiency of the third device 50 is correspondingly reduced.
[0196] Therefore, the upper-level control device 10 of the fourth embodiment takes into account the end time of the third device 50 and executes a movement process that immediately removes the object from the third device 50 when the processing step of the third device 50 for a certain object is completed. This ensures that the third device 50 is fully operational, thus solving problem 3 and improving the operating efficiency of the control system 1. The details of the control system 1 of the fourth embodiment will be described below.
[0197] Figure 17 This is a functional block diagram of the fourth embodiment. The measured value acquisition unit 106 can be implemented in the upper-level control device 10. The measured value acquisition unit 106 is mainly implemented by the control unit 11. In the fourth embodiment, the setting stored in the setting storage unit 101 is the execution time required to perform the third major process, which is at least one of multiple processes. This execution time is the processing time required by the third device 50 in the third major process. For example, since the setting data D1 contains time information, the setting storage unit 101 saves the time information contained in the setting data D1 as a setting.
[0198] In the fourth embodiment, the status acquired by the status acquisition unit 102 is the start time of the third major process, which is at least one process, that begins execution in the control system 1. For example, if the status data D2 includes the start time of each process, the status acquisition unit 102 acquires the start time of the processing step performed by the third device 50 in the third major process included in the status data D2. Alternatively, the start time may not be included in the status data D2; it is sufficient to record the time when the processing step performed by the third device 50 in the third major process for a specific object begins in the data storage unit 100.
[0199] The device control unit 103 determines the next process to be executed based on the execution time obtained by the setting and saving unit 101 and the start time obtained by the status acquisition unit 102. For example, the device control unit 103 can execute the final process of removing the object from the third device 50, which involves removing the object from the designated location after the processing step performed by the third device 50 in the third major process, based on the condition that the difference between the current time in the control system 1 and the start time is equal to or greater than the execution time obtained by the setting and saving unit 101. It is assumed that such execution conditions are determined in the setting data D1. Furthermore, the aforementioned difference is the time elapsed since the start of the processing step performed by the third device 50 in the third major process. Alternatively, it may not be the aforementioned difference, but rather a countdown to the estimated completion time of the processing step performed by the third device 50 in the third major process.
[0200] Furthermore, the method for determining the next step to be executed based on the execution time obtained by the setting and saving unit 101 and the start time obtained by the status acquisition unit 102 is not limited to the examples described above. For example, the device control unit 103 may also execute the movement step of retrieving the object from the third device 50 when the difference between the current time in the control system 1 and the start time is close to the execution time obtained by the setting and saving unit 101. The device control unit 103 may also execute a step other than the movement step of retrieving the object from the third device 50 when the difference is less than a threshold. This step can be any step.
[0201] The measured value acquisition unit 106 acquires the measured value of the time required for the third major process, which is at least one process. The third device 50 measures the time required from the start to the end of the process and sends it to the upper control device 10. Alternatively, the time measurement can also be performed on the upper control device 10 side. For example, the upper control device 10 can also measure the time from instructing the third device 50 to execute the process to the time from when the third device 50 receives notification that the process has been completed.
[0202] When the device control unit 103 acquires a measured value, it determines the next step to be executed based on the measured value, instead of the execution time specified by the user. That is, the device control unit 103 determines the next step to be executed based on the measured value, instead of the predicted time. The method for determining the step is as described in the third embodiment; simply replace the time information, which is the predicted value, with the measured value.
[0203] In the fourth embodiment, since at least one process is performed on an object installed in a designated location, the device control unit 103 can execute a movement process to remove the object from the designated location if the difference between the current time point and the start time point in the control system 1 is at least the execution time. As described above, this movement process is the process of moving the object from the third device 50, but it can also be other movement processes. For example, if the processing process of the second device 40 is performed preferentially, the device control unit 103 can also execute the process of moving the object from the second device 40 under the above conditions.
[0204] The control system 1 of the fourth embodiment determines the next process to be executed based on the execution time required for the execution of at least one of the multiple processes and the start time of the execution of at least one process. Therefore, considering the end time of the processing step of the third device 50, the operating efficiency of the control system 1 is further improved. The object whose processing step of the third device 50 has been completed can be immediately retrieved, and the processing step of the third device 50 can begin for the next object.
[0205] Furthermore, when the control system 1 obtains the measured time required for at least one process, it changes the execution time specified by the user and determines the next process to be executed based on the measured value. Thus, when the measured time required for processing the third device 50 in the second major process is obtained, the next process to be executed is determined based on the measured value, not the execution time specified by the user. This results in control according to the actual condition of the control system 1, further improving the operation of the control system 1.
[0206] Furthermore, control system 1 can execute a movement process that removes an object whose at least one process has been completed from a designated location, provided that the difference between the current time and the start time is at least one time. This allows for the immediate removal of an object whose at least one process has been completed. Therefore, the operational efficiency of control system 1 is further improved.
[0207] [5. Fifth Implementation Method]
[0208] For example, according to control system 1, various internal changeover adjustment processes need to be performed. As an example of an internal changeover adjustment process, the process of changing the robot arm will be described. Sometimes, the robot arm used by robot 24 is different before processing by second device 40, after processing by second device 40, and after processing by third device 50. Hereinafter, the process of changing the robot arm will be described as a changeover adjustment process. The changeover adjustment process is a type of internal changeover adjustment process. Therefore, in the fifth embodiment, the timing of robot 24 changing the robot arm is optimized to improve the operating efficiency of control system 1. In the fifth embodiment, the description of the same structure as in the first to fourth embodiments is omitted.
[0209] Figure 18 This diagram illustrates an example of a process performed considering the replacement of the robotic arm. In the fifth embodiment, the following scenarios will be described: a first robotic arm H1 for holding the object before processing by the second device 40, a second robotic arm H2 for holding the object after processing by the second device 40, and a third robotic arm H3 for holding the object after processing by the third device 50. Figure 18 In the example, the details of each process differ from those of the first to fourth embodiments, but the general process is the same as that of the first to fourth embodiments.
[0210] In the fifth embodiment, multiple processes include changeover adjustment processes associated with the moving process. For example, the process of installing the robotic arm on robot 24 becomes... Figure 18 The process includes a first changeover adjustment process, a second changeover adjustment process, and a third changeover adjustment process. For example, the first changeover adjustment process includes: the process of robot 24 moving to the second placement location P2; the process of robot 24 removing the installed robotic arm; the process of robot 24 installing the first robotic arm H1; and the process of robot 24 moving to the standby position. The second changeover adjustment process includes: the process of robot 24 moving to the second placement location P2; the process of robot 24 removing the installed robotic arm; the process of robot 24 installing the second robotic arm H2; and the process of robot 24 moving to the standby position.
[0211] The third changeover adjustment process includes: the process of moving robot 24 to the second placement location P2; the process of removing the installed robotic arm from robot 24; the process of installing the third robotic arm H3 on robot 24; and the process of moving robot 24 to the standby position. This is achieved through processes such as... Figure 18 By performing the process in this way, robot 24 can efficiently install the required robotic arm in the next process. The installation of such a robotic arm can be further optimized through the process described below.
[0212] In the fifth embodiment, one or more devices include a robot 24 capable of mounting various manipulators. A manipulator is an example of an end effector. Therefore, the part described as a manipulator can be replaced with an end effector. An end effector is a component mounted on the fingertips of the robot 24. An end effector can also be a component referred to as a claw. An end effector is a component used to move an object by grasping, adsorbing, sticking to, or hooking it.
[0213] In the fifth embodiment, the device control unit 103 determines the changeover adjustment process as the next process to be performed before the moving process of the object based on the settings and status and the execution status of the process for the object.
[0214] For example, the device control unit 103 determines the robot arm required from various end effectors for the next step, and installs the determined robot arm onto the robot 24. It is assumed that information indicating which robot arm is needed for which step is included in the setting data D1. Additionally, it is assumed that information indicating the location where the robot arm is configured is also included in the setting data D1. When determining the next step to be performed, the device control unit 103 determines the required robot arm by referring to the setting data D1. The control that installs the robot arm onto the robot 24 can itself utilize known control methods.
[0215] For example, the device control unit 103 can determine that a robot arm has been installed on the robot 24. If the robot arm required for the next process is already installed on the robot 24, the process of installing the robot arm on the robot can be skipped. It is assumed that the information identifying the robot arm installed on the robot 24 is contained in the status data D2. When determining the next process to be executed, the device control unit 103 refers to the setting data D1 and the status data D2 to determine whether the robot arm required for the next process is installed. Skipping a process means executing the next process without performing the current process.
[0216] For example, the device control unit 103 can also install the robot required for the next process based on the time required for the process associated with each of the various robot arms. For example, if the processing time required for the third device 50 is longer than the processing time required for the second device 40, and the third device 50 is to be prioritized, the device control unit 103 can install the third robot arm H3 onto the robot 24 on the condition that the processing process of the second device 40 in the second major process is being executed and the processing process of the third device 50 in the third major process is being executed.
[0217] For example, the second robot arm H2 is installed onto the robot 24 under the condition that the processing step of the second device 40 in the second major process is being executed, and the processing step of the third device 50 in the third major process is not being executed. Similarly, the third robot arm H3 is installed onto the robot 24 under the condition that the processing step of the second device 40 in the second major process is not being executed, and the processing step of the third device 50 in the third major process is being executed. Furthermore, if time information is considered under these conditions, the installation of the robot arms can be further optimized for efficiency.
[0218] According to the control system 1 of the fifth embodiment, in accordance with the execution status of the process for the target object, a changeover adjustment process is determined as the next process to be executed before the movement process of the target object. This allows for reliable execution of the next process, further improving the operating efficiency of the control system 1. Furthermore, if the robot arm required for the next process has already been installed on the robot 24, the control system 1 skips the process of installing the robot arm on the robot 24, thus avoiding unnecessary process execution, further improving the operating efficiency of the control system 1. Additionally, the control system 1 installs the robot arm required for the next process on the robot based on the time required for the processes related to each of the various robot arms, thereby further improving the operating efficiency of the control system 1. The operating efficiency of the control system 1 is also improved when performing changeover adjustment processes other than robot arm installation.
[0219] [6. Variations]
[0220] This disclosure is not limited to the embodiments described above. Appropriate modifications can be made without departing from the spirit of this disclosure.
[0221] For example, problem point 4 (the inability to execute multiple processes simultaneously) can be solved by determining the next process to be executed by continuously performing a combination of multiple processes specified by the user. For example, the process of removing the object from the second device 40 in the internal production adjustment process for the third object and installing the object into the second device 40 in the second major process for the fourth object can be executed consecutively, thus solving problem point 4 (the inability to execute multiple processes simultaneously).
[0222] In this case, the control system 1 can execute the installation of the object to the second device 40 in the second major process, provided that the preceding process of installing the object to the second device 40 in the second major process is completed and the processing process of the second device 40 in the second major process is not completed. The control system 1 can also continuously execute the installation of the object to the second device 40 in the second major process and the removal of the object from the second device 40 in the internal production adjustment process, provided that the preceding process of installing the object to the second device 40 in the second major process is completed and the processing process of the second device 40 in the second major process is completed.
[0223] For example, in the first to fifth embodiments, it was described that the second device 40 performs the first half of the processing on a certain object, and the third device 50 performs the second half of the processing. The control system 1 can be applied to any other situation. For example, it can also improve the operating efficiency of the control system 1, which includes multiple controlled devices that perform the same multiple processes respectively. For example, it can also improve the operating efficiency of the control system 1, which includes multiple devices that perform different processes on objects of different types.
[0224] For example, the functions described above can be implemented by any device in the control system 1. For example, the robot controller is equivalent to a control device, and the functions described as included in the upper-level control device 10 can also be implemented by the robot controller. For example, the functions described as included in the upper-level control device 10 can also be shared by multiple devices.
[0225] [Symbol Explanation]
[0226] 1. Control system; 10. Upper-level control device; 11, 21, 31, 41, 51, 61, 71. CPU; 12, 22, 32, 42, 52, 62, 72. Storage unit; 13, 23, 33, 43, 53, 63, 73. Communication unit; 20. Robot controller; 24. Robot; 30. First device; 40. Second device; 50. Third device; 60. Fourth device; 70. Engineering device; 74. Operation unit; 75. Display unit; D1. Setting data; D2. Status data; P1. First placement location; P2. Placement location 2, Placement location 3 (P3), Placement location 4 (P4), Data storage units 100, 200, 300, 400, 500, 600, 700, 101 Setting and saving unit, 102 Status acquisition unit, 103 Device control unit, 104 Judgment unit, 105 Notification unit, 106 Measured value acquisition unit, Process execution unit 201, 301, 401, 501, 601, 701 Display control unit, 702 Receiving unit, 703 Setting and saving unit, 704 Status acquisition unit, 705 Device control unit.
Claims
1. A control system comprising a plurality of devices, the plurality of devices independently of other devices performing at least one of the plurality of processes on a plurality of objects to be subjected to a plurality of processes respectively, the control system having: The settings storage unit stores user-specified settings related to the execution conditions of at least one of the plurality of processes; The cache unit is configured to hold multiple objects that await the execution of one or more subsequent processes from the plurality of processes. The status acquisition unit acquires the current status of the control system; as well as The device control unit, based on the settings and the status, dynamically determines the next process to be executed among the plurality of processes, and controls the plurality of devices. The plurality of devices includes one or more robots that perform a movement process that moves the object between the plurality of devices. Based on the settings and the status, the device control unit determines the movement operation performed by the robot as the next operation to be executed, such that if one device completes an operation, other operations performed by other devices are executed, and if a preceding operation is completed, the object is moved to the buffer unit, and when the subsequent operation is executed, the object is moved from the buffer unit. The settings include an upper limit on the number of objects that can be configured to be in the cache. The status includes the current quantity of the objects configured in the cache unit in the control system. The device control unit If the current quantity reaches the upper limit, the preceding process will not be determined as the next process to be executed. If the current quantity has not reached the upper limit, the preceding process can be determined as the next process to be executed.
2. The control system according to claim 1, wherein, The setting includes the execution order of two or more processes for one of the objects. The moving process is located between the two or more processes. The device control unit determines the robot's movement process as the next process to be executed based on the settings, so as to execute the two or more processes for a given object in the execution order.
3. The control system according to claim 1, wherein, The settings are priority sequences corresponding to the execution time of the processes. The described status refers to the execution status of the highest priority process among the multiple processes. The device control unit determines the movement process associated with the priority process as the next process to be executed, so that, if the priority process for one of the objects is completed, the object is moved from the device executing the priority process, and other objects are moved to the device.
4. The control system according to claim 3, wherein, When the priority process is completed, the device control unit prioritizes the moving process associated with the priority process over the moving process associated with the process with a relatively lower priority order, and determines it as the next process to be executed.
5. The control system according to claim 1, wherein, The control system includes a simulator that virtually executes the multiple processes. The status acquisition unit acquires the status on the simulator. Based on the settings and the status on the simulator, the device control unit dynamically determines the next procedure to be performed in the simulator and controls the simulator. The control system has a display control unit that displays a simulation screen representing the execution result of the simulator.
6. The control system according to claim 5, wherein, The settings include a layout representing the configuration of the plurality of devices. The simulator calculates the movement time required for the movement process based at least on the layout.
7. The control system according to claim 5, wherein, The control system includes a result storage unit that stores the execution results of the simulator. When the user changes the settings, the display control unit displays the results of the simulator corresponding to the settings before the change and the results of the simulator corresponding to the settings after the change on the simulation screen in a way that allows comparison, based on the execution results recorded in the result storage unit.
8. The control system according to claim 5, wherein, The display control unit displays process images, representing the start and end times of each process in the simulation, on a timeline-based chart in the simulation screen.
9. A control system, comprising: Multiple devices, each of which independently performs at least one of the multiple processes on multiple objects to be subjected to multiple processes, in addition to other devices; The settings storage unit stores user-specified settings related to the execution conditions of at least one of the plurality of processes; The status acquisition unit acquires the current status of the control system; as well as The device control unit, based on the settings and the status, dynamically determines the next process to be executed among the plurality of processes, and controls the plurality of devices. The plurality of devices includes one or more robots that perform a movement process that moves the object between the plurality of devices. Based on the settings and the situation, the device control unit determines the movement process performed by the robot as the next process to be executed, so that if one device completes a process, other processes performed by other devices can be executed. The settings are priority sequences corresponding to the execution time of the processes. The described status refers to the execution status of the highest priority process among the multiple processes. The device control unit determines the movement process associated with the priority process as the next process to be executed, so that, if the priority process for one object among multiple object species is completed, that object is moved from the device executing the priority process, and another object is moved to that device. The control system further includes The determination unit determines whether the execution time of the priority process is above a threshold; and The notification department will notify the user if it determines that the execution time exceeds the threshold.
10. The control system according to claim 9, wherein, It also includes a cache unit configured to hold multiple objects that await the execution of one or more subsequent processes from the plurality of processes; Based on the settings and the situation, the device control unit determines the movement process performed by the robot as the next process to be executed, such that if the preceding process is completed, the object is moved to the buffer unit, and if the subsequent process is executed, the object is moved from the buffer unit.
11. The control system according to claim 9, wherein, The control system includes a simulator that virtually executes the multiple processes. The status acquisition unit acquires the status on the simulator. Based on the settings and the status on the simulator, the device control unit dynamically determines the next procedure to be performed in the simulator and controls the simulator. The control system has a display control unit that displays a simulation screen representing the execution result of the simulator.
12. The control system according to claim 11, wherein, The settings include a layout representing the configuration of the plurality of devices. The simulator calculates the movement time required for the movement process based at least on the layout.
13. The control system according to claim 11, wherein, The control system includes a result storage unit that stores the execution results of the simulator. When the user changes the settings, the device control unit displays the results of the simulator corresponding to the settings before the change and the results of the simulator corresponding to the settings after the change on the simulation screen in a way that allows comparison, based on the execution results recorded in the result storage unit.
14. The control system according to claim 11, wherein, The device control unit displays process images, representing the start and end times of each process in the simulation, on a timeline-based chart in the simulation screen.
15. A control system, comprising: Multiple devices, each of which independently performs at least one of the multiple processes on multiple objects to be subjected to multiple processes, in addition to other devices; The settings storage unit stores user-specified settings related to the execution conditions of at least one of the plurality of processes; The status acquisition unit acquires the current status of the control system; as well as The device control unit, based on the settings and the status, dynamically determines the next process to be executed among the plurality of processes, and controls the plurality of devices. The plurality of devices includes one or more robots that perform a movement process that moves the object between the plurality of devices. Based on the settings and the situation, the device control unit determines the movement process performed by the robot as the next process to be executed, so that if one device completes a process, other processes performed by other devices can be executed. The control system includes a simulator that virtually executes the multiple processes. The status acquisition unit acquires the status on the simulator. Based on the settings and the status on the simulator, the device control unit dynamically determines the next procedure to be performed in the simulator and controls the simulator. The control system includes a display control unit that displays a simulation screen representing the execution result of the simulator. The settings include the execution time of at least one of the plurality of processes. The simulator performs timer processing corresponding to the execution time as a virtual execution for the at least one process.
16. The control system according to claim 15, wherein, The execution time of the at least one process is an integer multiple of a specified minimum time. The simulator performs the timer processing based on a value obtained by multiplying the execution time of the at least one process by the minimum time by the minimum scan time, where the scan time represents the processing cycle of the control program used to control the plurality of devices.
17. The control system according to claim 15, wherein, The settings include the execution time required for the execution of at least one of the plurality of processes. The condition includes the start time point at which the at least one process begins to be executed in the control system. The device control unit determines the next process to be executed based on the execution time and the start time.
18. The control system according to claim 17, wherein, The control system further includes a measured value acquisition unit, which acquires measured values of the time required for the at least one process. Upon receiving the measured value, the device control unit determines the next step to be executed based on the measured value, instead of the execution time specified by the user.
19. The control system according to claim 17, wherein, The at least one process is a process performed on the object installed in the designated location. The device control unit can execute the movement process of removing the object from the designated location after the completion of at least one process, provided that the difference between the current time point in the control system and the start time point is greater than or equal to the execution time.
20. The control system according to claim 19, wherein, The multiple processes include changeover adjustment processes associated with the moving process. Based on the settings and the status, the device control unit determines the changeover adjustment process as the next process to be executed before the movement process of the object, according to the execution status of the process for the object.
Citation Information
Patent Citations
Control program development support device, program for supporting control program development, and recording medium
JP2012194678A
Production system and information storage medium
US20210178589A1