Support program, support device, support system, and support method
Patent Information
- Application Number
- PCT/JP2023/032017
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-31
- Publication Date
- 2025-03-06
Smart Images

Figure JP2023032017_06032025_PF_FP_ABST
Abstract
Description
Support program, support device, support system, and support method
[0001] The present disclosure relates to an assistance program, an assistance device, an assistance system, and an assistance method.
[0002] In factory automation (FA) sites, a programmable logic controller (PLC) executes a control program to coordinate and control a large number of pieces of equipment to operate the line. When attempting to improve the line's availability, i.e., productivity, a time chart showing the operation of each piece of equipment is verified, and in this type of verification work, the control program as well as the time chart are verified (see, for example, Patent Document 1).
[0003] Japanese Patent Application Laid-Open No. 2021-149609
[0004] When either the time chart or the control program is changed to improve productivity, the other must be modified. However, this modification work places a heavy burden on the user, and there is room for reduction in this burden.
[0005] The present disclosure has been made in light of the above-mentioned circumstances, and aims to reduce the burden on the user when either the time chart or the control program is changed.
[0006] In order to achieve the above-mentioned object, the assistance program of the present disclosure causes a computer to function as an acquisition means for acquiring a control program executed by a programmable controller to control a controlled device and a time chart showing the operation of the controlled device when the control program is executed, a storage means for storing the acquired control program and time chart in association with each other, a modification means for modifying the part of the control program or the time chart corresponding to the change made to the other when a change is made to one of the control program and the time chart, and an output means for outputting the modified control program or time chart.
[0007] According to the present disclosure, it is possible to reduce the burden on the user when either the time chart or the control program is changed.
[0008]
[0009] Hereinafter, a support system according to an embodiment of the present disclosure will be described in detail with reference to the drawings.
[0010] Embodiment 1. As shown in Fig. 1, a support system 1000 according to this embodiment is a system that supports a user 40 in designing a facility including a PLC 20 and equipment 31, 32. The example in Fig. 1 shows a state before the facility, such as a factory, is in operation, and the PLC 20 and equipment 31, 32 are the targets of a simulation. As shown in Fig. 2, the support system 1000 is a system that supports a user 40 who requests improvement of a production index, such as cycle time, for the PLC 20 and equipment 31, 32 that are actually installed and in operation in the facility.
[0011] The assistance system 1000 includes an assistance device 10 that presents various information to assist a user 40. The assistance device 10 is a terminal device such as an Industrial Personal Computer (IPC), or a Graphic Operation Terminal (GOT) or display that is connected to a PLC 20 and mainly functions as a User Interface (UI) terminal for the PLC 20.
[0012] The assistance device 10 may receive a time chart 11 designed by the user 40 and output assistance information created based on the received time chart 11 to the user 40, or may generate a time chart 11 based on input information input by the user 40 and provide it to the user 40 as assistance information. The time chart 11 is a chart diagram showing the progress of operations of the equipment 31, 32. Note that in this embodiment, an example will be mainly described in which the assistance device 10 generates a time chart 11 and provides it to the user 40.
[0013] Furthermore, the support device 10 may accept a control program 12 created by a user 40 and output support information created based on the accepted control program 12 to the user 40, or may generate a control program 12 based on input information entered by the user 40 and provide it to the user 40 as support information, or cause the PLC 20 to execute it. The control program 12 is a program executed by the PLC 20 to control the equipment 31, 32, and is, for example, a sequence program written in ladder programming language. The control processing defined in the control program 12 is usually executed repeatedly by the PLC 20 to perform the same process on multiple workpieces.
[0014] The support device 10 also includes a 3D (three-dimensional) simulator 13 that simulates the operation of the equipment 31, 32 controlled by the PLC 20 in a three-dimensional space. The 3D simulator 13 receives information from a user 40 indicating the equipment 31, 32's model, model number, size, shape, location and orientation in the facility, and details of the operation, such as the magnitude, distance, direction, speed, range, time, pressure, temperature, and strength of the operation when an operation command specified by the control program 12 is given. Specifically, the user 40 selects the equipment 31, 32 to be placed in the facility from a library of various devices prepared in advance and places the equipment 31, 32 in a three-dimensional virtual space corresponding to the facility. The 3D simulator then virtually executes the control program 12 provided by the user 40 or the control program 12 generated by the support device 10, thereby simulating the operation of the equipment 31, 32 in the three-dimensional virtual space. Furthermore, the 3D simulator 13 accepts settings for the placement and movement of the walls, floors, ceilings, pillars, foundations, workers, AGVs (Automated Guided Vehicles), and other elements not controlled by the control program 12, in addition to the equipment 31 and 32, and simulates the operations in the virtual space. The 3D simulator 13 is primarily used by the user 40 to examine the operation and production index of the facility before the facility is launched, but may also be used to support the user 40 who desires to improve the production index even after the facility as shown in FIG. 2 has been launched.
[0015] When starting up a facility, the mechanical engineer who designs the equipment and the software engineer who designs the software are often different people. It is desirable for the mechanical engineer to provisionally decide on the equipment and create a time chart, while the software engineer creates a basic version of the software. The two engineers then work together to refine these creations, and only after it is clear that production indices exceeding a certain level can be achieved is actual operation initiated. However, in actual work sites, due to various circumstances, actual operation often begins without such preparation. For example, as a result of starting operation without creating a time chart, improvement measures may be proposed only after it is determined that the production indices are low, or the software engineer may be forced to create the time chart instead of the mechanical engineer, resulting in an excessive workload. In response to this, the support device 10 according to the present embodiment assists the user 40 by creating a time chart, contributing to the early realization of efficient control processing by the PLC 20.
[0016] The PLC 20 is a control device that controls the equipment 31, 32 in a facility by executing a pre-written control program 12. The PLC 20 may be connected to the equipment 31, 32 by a signal line that transmits a voltage signal or a current signal, or may be connected to the equipment 31, 32 via a field network. While FIGS. 1 and 2 representatively show one PLC 20 and two pieces of equipment 31, 32, there may be multiple PLCs 20, or more than two pieces of equipment may be controlled. Hereinafter, the equipment 31, 32 may be referred to as equipment 30 without distinction. The PLC 20 corresponds to an example of a programmable controller, and the equipment 30 corresponds to an example of a controlled device. The equipment 31, 32 each have an axis 31a, 32a as an operating unit.
[0017] 3 shows an example in which equipment 301 to 303 and 311 to 313 are installed in a facility. In the example of FIG. 3, equipment 301, which is a servo motor, rotates a shaft, which is a ball screw, to move a support table on which workpiece 41 is placed, from point A to point C via point B, and transports workpiece 41 to directly below equipment 303, which is an air chuck. Then, equipment 302, which is an air cylinder, pneumatically drives a piston rod downward, and equipment 303 attached to the piston rod grips workpiece 41. Also provided are equipment 311, which serves as a sensor that detects when the piston rod of equipment 302 is at the lowered end, equipment 312, which serves as a sensor that detects when equipment 303 is in a gripping state, and equipment 313, which serves as a sensor that detects when the piston rod of equipment 302 is at the upper end. In addition, these facilities 30 also operate according to the control program 12 in the process before the workpiece 41 is placed on the support table and in the process after the workpiece 41 is grasped by the facility 303, but details of these processes will be omitted.
[0018] FIG. 4 shows an example of a time chart illustrating the operation of the equipment shown in FIG. 3 described above. As shown in FIG. 4, the time chart is a graph showing the transition of the machine position of the equipment 30 or each of its axes of operation, with time on the horizontal axis and the equipment 30 or its axes of operation on the vertical axis. The time chart includes lines indicating the causal relationship between the operation of the equipment 30 and the events that trigger the operation. In FIG. 4, the causal relationship is indicated by dashed arrows. For example, dashed arrow 501 indicates that a trigger occurs in which device value "M0" corresponding to the operation command "grasp workpiece" turns ON, resulting in device value "Y0" turning ON and causing the air cylinder to perform an operation to push out the piston. Similarly, dashed arrow 502 indicates that pushing out the piston of the air cylinder causes a trigger in which device value "X0" corresponding to the detection result of the equipment 311, which is a sensor, turns ON, resulting in device value "Y1" turning ON and causing the air chuck to start gripping the workpiece. When the air chuck grips the workpiece, a trigger is generated in which device value "X1" corresponding to the detection result of sensor equipment 312 turns ON, causing device value "Y2" to turn ON and the air cylinder to perform the operation of returning the piston, as shown by dashed arrow 503. Furthermore, when the piston of the air cylinder returns, a trigger is generated in which device value "X2" corresponding to the detection result of sensor equipment 313 turns ON, causing PLC 20 to determine that gripping of the workpiece has been completed based on device value "M3", as shown by dashed arrow 504.
[0019] 4, the time chart shows device values X0, X1, X2, Y0, Y1, Y2, M0, M1, and M2 written in the control program 12. These device values correspond to variables used in the control program 12 and are values stored in the memory of the PLC 20. Some or all of the device values are shared with the equipment 30, and signals are transmitted between the PLC 20 and the equipment 30 using these device values.
[0020] 5 , the control program 12 includes input variables X0, X1, and X2, each of which has a name combining an "X" indicating that the input variable is a signal input to the PLC 20 with a numerical value identifying the input signal; output variables Y0, Y1, and Y2, each of which has a name combining a "Y" indicating that the output variable is a signal output from the PLC 20 to the equipment 30 with a numerical value identifying the output signal; and intermediate variables M0, M1, and M2, each of which has a name combining an "M" indicating that the output variable is used within the control program 12 with a numerical value identifying the value. Line 511 of the control program 12 is a description for turning on the device value "Y0" in response to the device value "M0" being turned on, and corresponds to the arrow 501 in FIG. 4 . Similarly, line 512 in FIG. 5 corresponds to the starting point of the arrow 502 in FIG. 4 , and line 513 in FIG. 5 corresponds to the ending point of the arrow 502 in FIG. 4 . Furthermore, line 514 in Fig. 5 corresponds to the starting point of arrow 503 in Fig. 4, and line 515 in Fig. 5 corresponds to the ending point of arrow 503 in Fig. 4. In this way, the causal relationships that appear in the control program 12 are represented by arrows in the time chart.
[0021] Note that Figure 5 representatively illustrates the control processes corresponding to arrows 501-504 in Figure 4, and omits other control processes. For example, the description for operating the servo motor as shown in Figure 4 is omitted in Figure 5. The control program 12 may include descriptions for manual operation and descriptions for automatic operation. In manual operation, it is desirable to specify numerous interlock conditions to ensure safe operation. In contrast, in automatic operation, the minimum necessary interlock conditions that meet predetermined standards may be retained, and other conditions may be excluded from the calculation target during program execution using Assert, thereby speeding up the scan cycle of the PLC 20. A slow scan may prevent the sensor output from being read when the sensor output momentarily switches ON / OFF. Therefore, speeding up the scan cycle reduces the risk of errors due to such reading errors. Furthermore, a faster scan cycle may contribute to shortening the cycle time.
[0022] The assistance device 10 is configured with hardware elements for functioning as a computer. In detail, as shown in Fig. 6, the assistance device 10 has a processor 101, a main memory unit 102, an auxiliary memory unit 103, an input unit 104, an output unit 105, and a communication unit 106. The main memory unit 102, the auxiliary memory unit 103, the input unit 104, the output unit 105, and the communication unit 106 are all connected to the processor 101 via an internal bus 107.
[0023] The processor 101 includes a central processing unit (CPU) or a micro processing unit (MPU) as a processing circuit. The processor 101 executes a program P1 stored in the auxiliary storage unit 103 to realize various functions and perform the processes described below. The program P1 may be a software application equivalent to a so-called engineering tool. The program P1 corresponds to an example of a support program.
[0024] The main memory unit 102 includes a RAM (Random Access Memory). A program P1 is loaded into the main memory unit 102 from the auxiliary memory unit 103. The main memory unit 102 is used as a working area for the processor 101.
[0025] The auxiliary storage unit 103 includes a non-volatile memory such as an EEPROM (Electrically Erasable Programmable Read-Only Memory) and an HDD (Hard Disk Drive). In addition to the program P1, the auxiliary storage unit 103 stores various data used in the processing of the processor 101. The auxiliary storage unit 103 supplies the processor 101 with data used by the processor 101 in accordance with instructions from the processor 101. The auxiliary storage unit 103 also stores data supplied from the processor 101.
[0026] The input unit 104 includes input devices such as hardware switches, input keys, a keyboard, a pointing device, and a microphone. The input unit 104 acquires information input by a user and notifies the acquired information to the processor 101. The user may input information via a GUI (Graphical User Interface) or by voice input.
[0027] The output unit 105 includes output devices such as a light emitting diode (LED), a liquid crystal display (LCD), and a speaker, and presents various information to the user in accordance with instructions from the processor 101.
[0028] The communication unit 106 includes a communication interface circuit for communicating with an external device. The communication unit 106 receives a signal from the outside and outputs data indicated by this signal to the processor 101. The communication unit 106 also transmits a signal indicating the data output from the processor 101 to the external device.
[0029] The above-described hardware configurations work together to enable the assistance device 10 to perform various functions. In detail, as shown in Fig. 7 , the assistance device 10 includes a storage unit 110 that stores various data, an acquisition unit 120 that acquires information from the outside, a 3D simulator 13 that simulates the operation of the equipment 30 in a three-dimensional virtual space, a generation unit 140 that generates assistance information including a time chart, a correction unit 150 that appropriately corrects the data in the storage unit 110, an analysis unit 160 that analyzes the data in the storage unit 110, an interface unit 170 that relays information exchange with the outside, and a display unit 180 that presents information to the user 40.
[0030] The memory unit 110 is mainly realized by at least one of the main memory unit 102 and the auxiliary memory unit 103. The data stored in the memory unit 110 includes data written in advance in the assistance device 10 and data acquired by the acquisition unit 120. In detail, as shown in FIG. 7 , the memory unit 110 stores an equipment library 111 indicating specifications including details of the model, shape, and operation of a large number of pieces of equipment that can be placed in the virtual space, time chart data 112 indicating a time chart generated by the generation unit 140, equipment data 113 related to the equipment 30 placed in the virtual space, time length information 114 indicating the time length of operation of the equipment 30, and a control program 12. The equipment library 111 is data written in advance in the memory unit 110, and the control program 12 is data provided by the user 40.
[0031] 8 schematically shows an example of the equipment data 113. The equipment data 113 includes simulation data 1131 for executing a simulation regarding the equipment 30 selected by the user 40 from the equipment library 111, and an auxiliary program 1132 that represents a causal relationship among a plurality of operations of the equipment 30 that does not appear in the control program 12.
[0032] The simulation data 1131 is data that associates the model number of the equipment 30, the layout of the equipment 30, parameters set for the equipment 30, and device values corresponding to the equipment 30, and is generated according to the settings of the user 40. The model number is information that specifies the size, shape, and details of operation. By searching the equipment library 111 for a model number that is the same as the model number of the simulation data 1131, it is possible to refer to the specifications of the equipment 30 with that model number. The layout represents the position and posture. The parameters are information that specify the operation of the equipment 30. For example, the parameter "A → B: sine wave" in FIG. 8 indicates that the transition of the machine position from point A to point B is sinusoidal, as shown in FIG. 4. The device values represent the names of device values shared with the equipment 30. For example, for an air cylinder in FIG. 8, the parameter "extend" is associated with the device value "Y0," indicating that when the device value Y0 is turned ON, the air cylinder performs an operation of pushing out the piston rod. The simulation data 1131 corresponds to an example of device information related to the controlled devices, and corresponds to an example of placement information indicating the placement of the controlled devices.
[0033] Note that the contents of the simulation data 1131 shown in Fig. 8 are an example, and the simulation data 1131 may include information different from that shown in Fig. 8. For example, as will be described later, the stroke length of an air cylinder may be set as a parameter, and the simulation data 1131 may include so-called configuration data for the 3D simulator 13.
[0034] The auxiliary program 1132 is information that indicates the relationships between the equipment 30 and the relationships between the operations of the equipment 30 in a format equivalent to that of the control program 12. In the example of FIG. 3 , the equipment 311, which is a sensor, detects that the piston rod of the equipment 302 has reached its lowering end. This relationship between the equipment 302 and the equipment 311 is necessary to generate a time chart, but is not shown in the control program 12. This relationship is shown by the auxiliary program 1132. For example, line 517 of the auxiliary program 1132 indicates that when the device value Y0 corresponding to the equipment 302 becomes ON, the device value X0 corresponding to the equipment 311 becomes ON. The auxiliary program 1132 corresponds to an example of trigger information.
[0035] Note that the detection by the equipment 311 that the equipment 302 has operated can be simulated by the 3D simulator 13. In this manner, the information indicated by the auxiliary program 1132 can be included in the simulation data 1131. When the auxiliary program 1132 is substantially included in the simulation data 1131, the auxiliary program 1132 may be omitted from the equipment data 113.
[0036] As illustrated in FIG. 9 , the time length information 114 indicates the length of time required for each operation of the equipment 30. The time length information 114 may be directly input by the user 40 and acquired by the acquisition unit 120. Furthermore, parameters of the equipment 30 set by the user 40 may substantially define the duration of the operation of the equipment 30. In this case, the acquisition unit 120 acquires the parameters as time length information, and the time length corresponding to the parameters may be determined by calculation using the parameters or by referencing a database that stores parameters and time lengths in association with each other. For example, when the stroke length and speed of an air cylinder are specified as parameters by the user 40, the time length is calculated by dividing the stroke length by the speed. In such a case, since the simulation data 1131 substantially includes the time length information 114, the time length information 114 stored separately from the simulation data 1131 in the storage unit 110 may be omitted.
[0037] Furthermore, the operation log when the equipment 30 is actually operated and the operation log when the operation of the equipment 30 is simulated can be considered as duration information indicating the duration of each operation of the equipment 30. The acquisition unit 120 may acquire and process such operation logs as duration information 114, thereby storing the duration information 114 indicating the duration of each operation in the storage unit 110 as shown in FIG. 9 . In detail, a representative value of various operations of the equipment 30 repeatedly recorded together with time in the operation log is adopted as the duration. The representative value may be, for example, any one sample, or a value determined statistically such as the average or median.
[0038] 7 , the acquisition unit 120 is mainly realized by the input unit 104 and the communication unit 106. The acquisition unit 120 acquires information from outside the assistance device 10 and stores the acquired information in the storage unit 110. For example, the acquisition unit 120 acquires parameters set by the user 40, as well as the control program 12, auxiliary program 1132, and time length information 114 provided by the user 40. The acquisition unit 120 corresponds to an example of an acquisition means.
[0039] The 3D simulator 13 is mainly realized by the processor 101. The 3D simulator 13 simulates the operation of the equipment 30 based on the simulation data 1131. If the simulation cannot be continued due to a lack of data after the start of the simulation of the operation, the 3D simulator 13 may prompt the user 40 to input data to supplement the data and simulate the operation of the equipment 30. The 3D simulator 13 corresponds to an example of a simulation means.
[0040] The generation unit 140 is primarily implemented by the processor 101. The generation unit 140 generates time chart data 112 based on the equipment data 113, the time length information 114, and the control program 12, and stores the generated time chart data 112 in the storage unit 110. For example, by referring to the control program 12 in FIG. 5, the causal relationship indicated by the dashed arrow in FIG. 4 can be understood, as described above. This allows the generation unit 140 to determine that, for example, the air cylinder in FIG. 4 begins the gripping operation of the air chuck at the same time as the air cylinder reaches the "extended" state. Furthermore, by referring to the auxiliary program 1132 in the equipment data 113, it can be understood that, for example, the air cylinder in FIG. 4 begins the pushing operation of the piston rod, and the completion of this operation is detected by a sensor. This allows the generation unit 140 to connect the solid line connecting "Y0" to "X0" in FIG. 4, which indicates the pushing operation of the air cylinder, to the arrow 502. Furthermore, by referring to the time length information 114, the length of time required for the pushing operation of the air cylinder can be understood. This allows the generating unit 140 to determine the slope of the solid line. Similarly, the generating unit 140 generates a time chart showing the operation of each piece of equipment 30. The generating unit 140 corresponds to an example of a generating means.
[0041] 7, the modifying unit 150 and the analyzing unit 160 are mainly realized by the processor 101. Details of the modifying unit 150 and the analyzing unit 160 will be described in other embodiments.
[0042] The interface unit 170 is mainly realized by the processor 101, the input unit 104, and the communication unit 106. The interface unit 170 functions as a UI interface that receives information input by the user 40 and provides the received information to the acquisition unit 120. The interface unit 170 also outputs display data indicating information to be displayed to the user to the display unit 180. The interface unit 170 corresponds to an example of an output means that outputs display data. Furthermore, the interface unit 170 functions as a communication interface that communicates with external devices.
[0043] The display unit 180 is mainly realized by the output unit 105. The display unit 180 displays the time chart indicated by the time chart data 112 to the user in accordance with an instruction from the user. Note that the display unit 180 may be omitted from the assistance device 10, and the assistance device 10 may exchange information with the user through communication with an external UI device.
[0044] 10 shows the procedure of the time chart generation process executed by the support device 10. This time chart generation process corresponds to an example of a time chart generation method and is started by a specific operation of the user 40. In the time chart generation process, the acquisition unit 120 acquires the control program 12, the equipment data 113, and the time length information 114 (step S1). When acquiring the equipment data 113, the acquisition unit 120 may search and read information on the equipment 30 corresponding to the model number specified by the user 40 from the equipment library 111. Next, the generation unit 140 generates a time chart based on the control program 12, the equipment data 113, and the time length information 114 (step S2). Then, the interface unit 170 outputs display data for the time chart, and the time chart is displayed on the display unit 180 (step S3).
[0045] 11 shows an example of a screen including the time chart displayed in step S3. As shown in FIG. 11, the support device 10 may display the cycle time as a production index together with the time chart to support the review work by the user 40.
[0046] As described above, the assistance device 10 generates a time chart using the control program 12. The control program 12 is data that is essential for causing the PLC 20 to execute control processing regardless of whether a time chart is present or not, and the time chart is generated using information on causal relationships included in this control program 12. This reduces the burden on the user 40 in generating the time chart.
[0047] The acquiring unit 120 may also acquire parameters to be set in the equipment 30 as the duration information 114. This reduces the burden on the user 40 of determining the duration. Furthermore, the acquiring unit 120 may also acquire an operation log of the equipment 30 as the duration information 114. This reduces the burden on the user 40 of preparing the duration information.
[0048] The support device 10 may also be a GOT. Conventionally, checking a control program required operating an engineering tool on a PC, and unless the user 40 was skilled in operating the PC and the engineering tool, it could be difficult to even grasp the current situation. In contrast, if a time chart is displayed on the support device 10 as a GOT, on-site workers can point out problems using the same indicator, i.e., the time chart.
[0049] 8, 9, and 11, the machine positions of the equipment 301, which is a servo motor, are given names such as "A," "B," and "C." These names may be used not only to designate the stop positions of the servo motor, but also to designate the positions to be passed through. If the positions of the servo motors are indicated numerically in a time chart, when the positions of the servo motors that serve as starting points for commanding the operation of two different axes are close to each other, a user 40 viewing the time chart may misinterpret which of the two points affects which axis. However, if names can be assigned to the machine positions of the servo motors, misinterpretation of the time chart can be avoided.
[0050] The generation unit 140 also generates a time chart from the simulation data 1131, which includes the configuration. Conventionally, mechanical designers would create a 3D model to design equipment, build an operating procedure using a configuration, and then create a time chart after confirming the configuration. However, this process was time-consuming, and if rework was required, both the configuration and the time chart had to be revised. In contrast, if a time chart is generated based on the configuration as described above, it is possible to reduce the number of design steps and avoid mistakes due to overlooking one of the steps.
[0051] Furthermore, the generation and display of the time chart are not limited to the above example and may be modified as desired. For example, as shown in FIG. 12 , when there is variation in the operating times of the equipment 30, regions 518-521 indicating the variation may be displayed on the time chart. Furthermore, as shown in FIG. 12 , when the magnitude of the variation is smaller than a threshold, regions 518-519 may be displayed without hatching, and when the magnitude of the variation exceeds the threshold, regions 520-521 may be displayed with hatching to highlight the variation. Instead of hatching, coloring may be used according to the magnitude of the variation. Furthermore, as can be seen from FIG. 12 , the variation in region 520 is caused by the variation in region 521. Two regions having such a causal relationship may be displayed in different ways, or only the region corresponding to the cause may be highlighted.
[0052] The variation information indicating the variation may be acquired by the acquisition unit 120 from the user 40, or may be obtained by a statistical method from an operation log obtained when the control process defined in the control program 12 is repeatedly executed. The variation may be, for example, a standard deviation or a range defined by an upper limit and a lower limit.
[0053] Understanding variation is fundamentally difficult in normal FA worksites, and there are many cases where it is not obtained, or where it is not effectively utilized even if it is obtained. However, a display like that shown in Figure 12 makes it easy to analyze the causes of variation and contributes to stabilizing cycle time by eliminating hidden causes. Furthermore, if variation is caused by mechanical components, it can prompt the reselection of the components, which is expected to lead to efficient equipment design by arranging equipment with sufficient capacity in the facility.
[0054] Furthermore, the method of displaying causal relationships in a time chart may be changed. For example, a temporal causal relationship may be displayed as shown in FIG. 13. Here, the temporal causal relationship refers to the relationship between a cause that directly affected a result, among the causes that contribute to the result, and the result. In other words, it can be said to be the relationship between the cause that occurred last and the result that appeared simultaneously with the occurrence of the cause. In the example of FIG. 13, a dashed arrow is drawn from only the device value X20, which last contributed to the device value M200, among the device values X10 and X20 that correspond to the causes, to the device value M200 that corresponds to the result as described in the control program.
[0055] On the other hand, Figure 14 shows an example of a time chart displaying a conditional causal relationship. A conditional causal relationship refers to the relationship between all causes that contribute to a result and that result. In other words, it refers to the relationship between all causes that occur, regardless of order or time, and that result. In the example of Figure 14, dashed arrows are drawn from both device values X10 and X20, which correspond to causes, to device value M200, which corresponds to the result. Note that the display of the temporal causal relationship as in Figure 13 and the display of the conditional causal relationship as in Figure 14 may be switched by a user operation.
[0056] In the past, SW designers had to adjust the causal relationships of operation timing by looking at the control program, mechanical designers at 3D models or time charts they created, and on-site personnel at the actual equipment operation. Because each worker used different tools, there was a large discrepancy in information, and it took a long time from the occurrence of a problem to its resolution. In contrast, by displaying the temporal causal relationships and conditional causal relationships described above, it becomes possible to easily grasp areas for improvement in the control program and the cycle time. It is also expected that mechanical designers and on-site personnel other than SW designers will be able to easily understand the processing flow defined in the control program.
[0057] 15, the lines representing the operation of each piece of equipment 30 in the time chart may be changed to blocks. A time chart such as a Gantt chart may be more suitable depending on the user 40 or the review work performed by the user 40. Furthermore, as shown in FIG. 15, the blocks may be colored according to the type of operation.
[0058] 15, the generation unit 140 may include in the time chart a display component 522 that displays the power consumption or the amount of power consumption when the servo motor is operating. The amount of power consumption is calculated from the simulation data 1131 and the equipment library 111. Conventionally, because it is cumbersome to determine the power consumption at the design stage, it has often been the case that a breaker and a power supply with a relatively large capacity are selected without calculating the accurate power consumption. In contrast, if the power consumption is displayed as in FIG. 15, it becomes possible to select an appropriate breaker and power supply.
[0059] 15, the generation unit 140 may also include in the time chart a display component 523 that displays the air flow rate or air volume consumed when the air cylinder operates. The air flow rate and air volume consumed are calculated from the simulation data 1131 and the equipment library 111. In the past, the air flow rate consumed was often over-designed. Air shortages caused variations in the equipment's operating time, leading to extended start-up times and operational problems. In contrast, by displaying a predicted air flow rate along the time axis as shown in FIG. 15, the peak consumption flow rate can be grasped, which can support the design of stable equipment.
[0060] As shown in FIG. 15 , the generation unit 140 may also include a display component 524 in the time chart, indicating that the peak value of the servo motor's acceleration / deceleration cycle time exceeds a predetermined threshold. The acceleration / deceleration peak value is calculated from the simulation data 1131 and the equipment library 111. Conventionally, without such a display, operators often pressed the emergency stop button when the servo motor suddenly accelerated or decelerated. However, pressing the button could result in the servo motor's mechanical position reaching outside of its normal range. In other words, the servo motor could be stopped using a mechanical stopper rather than a limit switch. In contrast, a display such as that shown in FIG. 15 allows the user 40 to predict in advance that the servo motor may not be able to stop completely. This can prevent equipment failure. Instead of or in addition to a display on the time chart, the user 40 may be notified of the sudden acceleration / deceleration of the servo motor by an alarm during compilation of the control program 12.
[0061] 15, the generation unit 140 may include a display component 525 showing the torque value of the servo motor in the time chart. The torque value is calculated from the simulation data 1131 and the equipment library 111. Conventionally, designers have selected servo motors by separately calculating acceleration / deceleration values for the timing when the acceleration / deceleration of the servo motor is predicted to be most severe. In contrast, if torque values are displayed as in FIG. 15, it is expected that it will be easier to design a servo motor that evens out acceleration / deceleration over the entire cycle time.
[0062] Instead of the torque value, the generation unit 140 may include a display component showing the average load or operating load of the servo motor in the time chart, similar to the display component 525 in FIG. 15 . The average load is calculated from the simulation data 1131, which includes information about the workpiece, and the equipment library 111. In the past, when selecting bearings or ball screws, calculating the average load for complex operations was cumbersome, so the average load was often overestimated without accurate calculation. This resulted in the selection of large-sized components, which in turn required a larger motor, resulting in an overall increase in the size of the equipment. In contrast, if the average load were displayed on a time chart, appropriate components could be selected, and the equipment could be made smaller.
[0063] Furthermore, the support device 10 may derive and propose control content that achieves the target cycle time while leveling the acceleration and deceleration of the servo motor. For example, in the operation according to the time chart at the top of FIG. 16 , as shown in the center of FIG. 16 , the torque value of the servo motor in section 541 has a margin up to the allowable value, while the torque value in section 542 exceeds the allowable value. In this case, the support device 10 proposes shortening the length of section 541 by increasing the torque value to near the allowable value, and bringing the torque value in section 542 within the allowable range. The allowable torque range may be provided as the equipment library 111 or the simulation data 1131, or may be input by the user 40 as the rated torque and allowable torque of the servo motor. Such proposals may relax the selection criteria for the servo motor, thereby further shortening the cycle time.
[0064] Furthermore, the generating unit 140 may generate time charts at multiple stages before the start-up of the facility and store them in the storage unit 110, or may generate time charts at multiple stages after the start-up or periodically and store them in the storage unit 110. That is, the storage unit 110 may store a log of the time chart as time chart data 112. For example, if a time chart at the time of the start-up of the facility is used as a reference, it is possible to observe changes over time and predict the lifespan of actuators including servo motors and air cylinders, thereby contributing to predictive maintenance.
[0065] Furthermore, the support device 10 may display both a normal time chart and a time chart when an abnormality occurs, allowing the user 40 to compare these time charts. Conventionally, the user 40 would acquire a log of the equipment 30's operation and create a time chart themselves, which would then be used to investigate the cause of a malfunction and shorten the takt time. In contrast, if the support device 10 could compare time charts created with each other, for example, by comparing a time chart created in the design stage with a time chart created from the log, bugs could be identified at an early stage, contributing to shortening the takt time. Similarly, comparing a time chart created by a mechanical engineer with a time chart generated by the generation unit 140 could contribute to early facility startup and shortening the takt time.
[0066] FIG. 17 shows another example of equipment to be installed in a facility. In the example of FIG. 17 , the order of operations of equipment 30 is indicated by numbers in parentheses attached to dashed arrows indicating the direction of operation. First, operation 1 is an operation in which equipment 321, which is a servo motor, rotates a ball screw to move a support table on which workpiece 42 is placed from point D to point A via points C and B in this order, thereby transporting workpiece 42 to directly below equipment 322 and 323. Operation 2 is an operation in which equipment 322, which is an air cylinder, pushes out a piston rod. Operation 3 is an operation in which equipment 323, which is an air chuck attached to the tip of the piston rod, grips workpiece 42. Operation 4 is an operation in which equipment 322 returns the piston rod, thereby raising the air chuck gripping the workpiece. The fifth operation is an operation in which equipment 324, which is a servo motor, moves the support table to which equipment 322 is attached, thereby transporting workpiece 42 over wall 332 to directly above pallet 333.
[0067] Fig. 18 shows a time chart corresponding to the operation of Fig. 17. The numbers along the vertical axis in Fig. 18 correspond to the reference numerals of the equipment 321 to 324 shown in Fig. 17. Furthermore, the numbers in parentheses along the horizontal axis in Fig. 18 correspond to the numbers attached to the dashed arrows shown in Fig. 17.
[0068] 18 , it is determined from the simulation by the 3D simulator 13 that the equipment 323, which is an air cylinder, approaches the wall member during period (5). In this manner, the generation unit 140 may display, on a time chart based on the simulation, the timing at which the equipment 30 approaches another device. Here, the proximity between the equipment 30 and another device occurs when the distance between the equipment 30 and the other device becomes shorter than a predetermined threshold.
[0069] Conventionally, during the start-up phase of a facility, adjustments have been made by overlapping two or more operations while the equipment 30 is actually operating, in order to achieve a target cycle time. Here, overlapping refers to simultaneously executing at least a portion of two or more operations, thereby completing all of these operations faster than if they were executed sequentially. However, overlapping operations is often difficult due to unexpected interference. In contrast, if the timing of when the equipment 30 approaches other devices is displayed, as shown in Figure 18, a control program 12 that overlaps operations can be easily created during desktop adjustment work without actually preparing the equipment 30. This shortens the adjustment period during the start-up phase on-site. Furthermore, if components that interfere during operation are identified, the shape of the components can be reconsidered and redesigned to avoid interference, further shortening the cycle time.
[0070] FIG. 18 also shows that when the device value Y10 is ON, the equipment 322 starts pushing out the piston rod, and when the device value Y20 is ON, the equipment 324 starts returning the support base. If these operations are performed simultaneously, as can be seen from FIG. 17 , the piston rod of the equipment 322 will come into contact with the wall member, causing interference. To avoid such interference, the control program 12 typically includes an interlock description as shown in FIG. 19 . Specifically, a b-contact for the device value Y20 is inserted as a condition for the device value Y10 to be ON, and a b-contact for the device value Y10 is inserted as a condition for the device value Y20 to be ON. This prevents both the device values Y10 and Y20 from being ON simultaneously. When the control program 12 includes such an interlock description, the generation unit 140 may include a block 531 indicating the interlock in the portion where the operation is restricted by the interlock, as shown in FIG. 18 . Furthermore, the generation unit 140 may color the portion corresponding to the block 531 instead of the block 531. This allows the user 40 to easily determine from the time chart whether an operation is restricted by an interlock.
[0071] Furthermore, when acquiring the control program 12 by accepting an editing operation by the user 40, the acquisition unit 120 may provide, as a UI, a function for setting a block of operations from input to completion for a single actuator. FIG. 20 shows an example of setting such a block. Specifically, a description spanning multiple lines entitled "Air chuck: workpiece grip" is set as a single block. The set block may be reused like a routine or function without being separated. Conventionally, the structure of a control program has depended on the program creator, and control programs have often not been structured as blocks covering operations from input to completion for each actuator. In such cases, even for operations within the same actuator, descriptions for the actuators appear in separate locations within the control program, resulting in extremely poor readability. Furthermore, when a time chart is generated based on a control program with such a structure, the control program itself is difficult to handle, and the time chart is not utilized, which presumably makes it difficult to improve productivity. On the other hand, as shown in FIG. 20, if it becomes easier for a third party to compile descriptions regarding the operation of the actuators inside the control program 12, it is thought that the operability of the control program 12 as an input terminal can be improved, and the utilization rate of the time chart and the penetration rate within the organization can be improved.
[0072] Although FIG. 20 illustrates an example in which the operation of one facility 30 is grouped, a UI for setting sequential operations by multiple facilities 30 as a group may also be provided. The generation unit 140 may then generate a time chart showing the operation of a facility unit that combines multiple facilities 30 whose operations are set as a group. FIG. 21 illustrates an example time chart showing the operation of a chuck unit composed of facilities 322 and 323, from gripping to releasing a workpiece. Conventionally, even for actuator units composed of multiple actuators, descriptions were often scattered within a control program. This led to poor readability of the control program and the time chart derived from the control program, especially when the number of motion axes handled increased. In contrast, grouping the operations of actuator units as shown in FIG. 21 would enable hierarchical organization of the time chart, improving readability and potentially contributing to improved maintainability of the control program 12.
[0073] In addition, in the examples shown in Figures 20 and 21, the user 40 manually set the blocks, but the generation unit 140 may also use pattern recognition techniques to extract descriptions of sequential processes that appear repeatedly in the control program 12 as blocks.
[0074] The generating unit 140 may also add comments added by the user 40 to the control program 12 as shown in FIG. 20 to a time chart as shown in FIG.
[0075] Although an example has been described in which the generating unit 140 generates a time chart based on the control program 12, the equipment data 113, and the time length information 114, the user 40 may directly input missing information as appropriate, or the time chart may be generated using additional information provided by the user 40. For example, the user 40 may specify relationships between events and relationships between events and triggers that do not appear in the control program 12 and the auxiliary program 1132.
[0076] Also, it has been described that a time chart is generated based on the simulation data 1131 for executing a simulation by the 3D simulator 13. Here, the time chart may be generated based on constraint conditions of the 3D model indicated by the simulation data 1131. For example, in a case where two parts connected by a hinge operate in a correlated manner, the 3D simulator 13 may detect the correlation of the operations and accurately synchronize the operations of these parts on the time chart.
[0077] Second Embodiment Next, a second embodiment will be described, focusing on the differences from the first embodiment described above. Note that the same or equivalent components as those in the first embodiment will be denoted by the same reference numerals. In this embodiment, the description will focus on the functions of the assistance device 10 after a time chart is provided by the user 40 or generated by the assistance device 10.
[0078] The acquisition unit 120 according to this embodiment corresponds to an example of an acquisition means for acquiring a control program executed by a programmable controller to control a controlled device and a time chart showing the operation of the controlled device when the control program is executed. Furthermore, the storage unit 110 stores the time chart indicated by the time chart data 112 in association with the control program 12. Specifically, the storage unit 110 stores the lines indicated by arrows 501 to 504 in the time chart of FIG. 4 in association with descriptions showing causal relationships appearing in the control program 12. The storage unit 110 corresponds to an example of a storage means for storing the acquired control program and time chart in association with each other.
[0079] 22 shows an example in which the control program 12 stored in the storage unit 110 is changed by an operation by the user 40. For example, the device value Y0 included in the control program 12 is changed to a device value Y2, the device value X0 is changed to a device value X2, the device value Y2 is changed to a device value Y0, and the device value X2 is changed to a device value X0.
[0080] The correction unit 150 of the support device 10 corrects the time chart indicated by the time chart data 112 stored in the storage unit 110 as shown in Fig. 23 in response to a change in the control program 12. The correction unit 150 corrects the time chart by generating chart components of the time chart for the changes in the control program 12 using a method similar to that used by the generation unit 140 according to the first embodiment.
[0081] Furthermore, when the user 40 modifies the time chart shown in FIG. 4 as shown in FIG. 23 , the modifying unit 150 modifies the control program 12 to reflect the causal relationships in accordance with the modified time chart. For example, as indicated by arrow 601 in FIG. 23 , it can be seen from the modified time chart that the device value Y2 changes depending on the device value M0. Therefore, the modifying unit 150 modifies the device value that changes depending on the device value M0 from Y0 to Y2, as shown in FIG. 22 . Similarly, the modifying unit 150 modifies rows 612, 613, and 614 in FIG. 22 according to the causal relationships indicated by arrows 602, 603, and 604 in FIG. 23 . The modifying unit 150 corresponds to an example of a modifying means that, when a change is made to one of the control program and the time chart, modifies the corresponding portion of the other. The modified control program or time chart is output by the interface unit 170 to the storage unit 110 or the display unit 180.
[0082] As described above, when one of the control program and the time chart is changed, the correction unit 150 corrects the corresponding part of the other when the other is changed. This eliminates the need for the user 40 to correct the other when either the time chart or the control program is changed, thereby reducing the burden on the user.
[0083] Furthermore, the analysis unit 160 according to this embodiment analyzes parameters to be set in the equipment 30 to realize the operation shown in the time chart. For example, the acquisition unit 120 acquires data indicating the motor model number, stroke, payload capacity, load factor, and cam curve shape as detailed information indicating the operation shown in the time chart via an input screen exemplified in FIG. 24 . The analysis unit 160 then derives parameters to be set in the equipment 30 by performing a predetermined calculation on the operation shown in the time chart and the detailed information, or by referencing data stored in a storage device in association with the operation and detailed information indicated by the elements constituting the time chart. The interface unit 170 outputs the derived parameters to the display unit 180, which then displays an output screen such as that shown in FIG. 24 . On this output screen, PG1, which represents a model control gain for adjusting the motor gain, and PG2, which represents a position control gain, are displayed as parameters. Note that the parameters are not limited to these, and other parameters may be displayed.
[0084] Fig. 25 shows a second example of parameters derived by the analysis unit 160. In the example of Fig. 25, a pipe diameter is derived as a parameter from a time chart showing the operation of an air cylinder and the cylinder model number, stroke, workpiece weight, throttle opening rate, and air pressure specified by the user 40. Fig. 26 shows another example of analysis by the analysis unit 160. In the example of Fig. 26, a recommended motor combination is shown from a time chart showing the operation of two servo motors and information specified by the user 40 on the input screen.
[0085] As described above, the analysis unit 160 analyzes the parameters to be set in the equipment 30. Conventionally, when an error occurs due to a large number of parameters, it is difficult to determine whether the cause of the error is in the control program 12 itself or in the parameters, which tends to increase the debugging time. In contrast, if the analysis unit 160 analyzes the parameters to be set in the equipment 30, the debugging time can be shortened. The analysis unit 160 corresponds to an example of an analysis means.
[0086] 15 and a load such as an operating load or a rated load, based on the operation shown in the time chart and the simulation by the 3D simulator 13. The interface unit 170 may output display data indicating the results of the analysis by the analysis unit 160 to the display unit 180.
[0087] Furthermore, if an error occurs during execution of the control program 12, the interface unit 170 outputs display data that highlights the element corresponding to the error in the time chart to the display unit 180. For example, as shown in Fig. 27, if an error occurs in timer T3, which counts time according to device values Y2 and X2, the line connecting device values Y2 and X2 is highlighted in the time chart.
[0088] A timer like the one shown in FIG. 27 is introduced for the purpose of allowing a SW technician to output an error if the equipment 30 does not hold movement information for a certain axis (device value X2 turns ON after a specific length of time has elapsed since device value Y2 turned ON), and device value X2 does not turn ON within a specific length of time. The length of time for the movement information is calculated from the load and axis output specifications, just as when designing a time chart, and an allowable error level is set for that length of time. If the equipment 30 holds axis movement information, it is possible to set it all at once to output an error when the equipment operates differently from expected, and it is also possible to exclude program parts that unnecessarily cause errors from being subject to error output.
[0089] Although a silent stop does not normally occur with a timer such as that shown in Fig. 27, an error highlighted as shown in Fig. 27 may be a silent stop. For example, if the equipment 30 stops unexpectedly even without any particular error output, an unreacted sensor output value or device value may be displayed and a warning of the possibility of a silent stop may be issued. Then, when the user presses a button on the warning screen, the support device 10 may add error processing for the silent stop.
[0090] Furthermore, the generation unit 140 according to this embodiment generates a return-to-origin procedure for the multiple pieces of equipment 30. This procedure is generated, for example, by a brute force simulation or by a genetic algorithm. The correction unit 150 then adds to the control program 12 program components that cause the multiple pieces of equipment 30 to execute the generated return-to-origin procedure. Furthermore, if a simulation using the simulation data 1131 indicates that interference will occur when the multiple pieces of equipment 30 operate simultaneously, the correction unit 150 adds an interlock description to the program components, as illustrated in FIG. 28 , thereby realizing a return-to-origin procedure that prevents interference between the pieces of equipment 30.
[0091] Conventionally, when performing a return to origin, the equipment state is often such that the return to origin operation does not occur at any point in the automatic operation mode. Therefore, there is a risk of interference during debugging and damage to the equipment, requiring the user 40 to set multiple interlocks. However, for equipment with a large number of axes and positions where they may interfere with each other, countless interlock conditions are required, and the settings by the user 40 are often insufficient. For this reason, to avoid damage to the equipment, it is necessary to carefully consider a procedure that reliably prevents interference. In contrast, if the return to origin procedure is generated by the generation unit 140 and the interlock description is added by the modification unit 150 as described above, it can contribute to shortening the software development period, shortening the debugging time, and suppressing equipment interference problems caused by insufficient interlocks.
[0092] Furthermore, since the number of interlock conditions increases exponentially as the number of axes increases, machine learning may be used to compress the dimensions, and appropriate interlock conditions may be set by the user 40 inputting minimal parameters.
[0093] The acquisition unit 120 according to this embodiment also acquires detection results from sensors that detect the position of the motion axes and the timing of the motion axes when the equipment 30 is manually operated. For example, a test run may be performed by manually causing a group of equipment to perform a series of operations using jog operation and single cylinder movement. Furthermore, the support device 10 records point information and interlock information while an operator manually operates the equipment using servo motors. The correction unit 150 then creates program components that operate the equipment 30 in accordance with the sensor detection results and adds them to the control program 12, or creates chart components that operate the equipment 30 in accordance with the sensor detection results and adds them to the time chart. In this case, the equipment 311 to 313, which are sensors, correspond to an example of a detection means.
[0094] In some cases, without creating a time chart at the facility design stage, the control program 12 for automatic operation is created after considering appropriate operations while operating the actual machine in jog operation and biliary operation. In contrast, if the correction unit 150 creates program components or chart components corresponding to manual operations as described above, the number of steps can be reduced.
[0095] Furthermore, the interface unit 170 according to this embodiment accepts intuitive operations by the user to modify the time chart. For example, the thick solid line 621 in FIG. 29 may be drawn by tracing with a finger. Furthermore, a dashed line 624 connecting points 622 and 623 may be drawn by tapping these points 622 and 623. Furthermore, an operation may be performed to select any sensor from a list of sensors and associate a point on the time chart with a device value. Furthermore, an operation to rearrange the axes aligned along the vertical axis of the time chart may be accepted.
[0096] Conventionally, spreadsheet software or CAD (Computer Aided Design) software has been used to create time charts, but creating a time chart is a complicated task and requires a large workload. In contrast, if the operation shown in Figure 29 is possible, the work time and man-hours can be reduced.
[0097] Third Embodiment Next, a third embodiment will be described, focusing on the differences from the first embodiment described above. Note that the same or equivalent components as those in the first embodiment will be designated by the same reference numerals. In this embodiment, the description will be focused on the functions of the support device 10 that utilizes the 3D simulator 13.
[0098] The generation unit 140 in this embodiment generates and outputs display data for displaying an image including a first image showing the operation history of the equipment 30 from the operation log when the equipment 30 was actually controlled, and a second image showing the simulated operation history of the equipment 30 when the control of the equipment 30 was simulated by the 3D simulator 13.
[0099] For example, as shown in Fig. 30, the generating unit 140 generates a first image showing a time chart at the planning stage based on a simulation and a second image showing a time chart as an actual result based on an operation log. Different parts of these time charts are highlighted as shown by a line 701.
[0100] The generating unit 140 generates a first image showing the transition of the device values in the planning stage based on the simulation and a second image showing a time chart as the actual results based on the operation log, as shown in Fig. 31. Furthermore, the generating unit 140 generates a first image showing the operation of the 3D model in the planning stage based on the simulation and a second image showing the 3D model as the actual results based on the operation log, as shown in Fig. 32.
[0101] The display of the time charts, device value transitions, and 3D models shown in Figures 30 to 32 may be switched by a user 40. Also, by pressing a button 702 in Figure 30, a pointer 704 indicating the current position on a seek bar 703 may move, and the first image and the second image may change over time. In other words, a moving image may be played.
[0102] 30 is divided into sections corresponding to a plurality of control sections. Specifically, control of the equipment 30 is realized by sequentially executing section control in a plurality of control sections. Furthermore, if the length of time required for one of the planned and actual section controls differs from the length of time required for the other section control, the control section may be highlighted as shown by a hollow line 705.
[0103] 32, the machine position of the equipment having a piston rod that moves up and down is different, and the operation that caused this difference is displayed by message 706. In this way, when the operation of the equipment 30 indicated by the operation log differs from the operation in the simulation of the equipment 30, and the events that trigger each operation are different, the generation unit 140 may generate an image indicating that the events that trigger each operation are different.
[0104] The generating unit 140 may also generate a time chart of the planning stage and a time chart of the actual results in such a manner that they are superimposed on each other as shown in FIG.
[0105] Furthermore, the storage unit 110 according to this embodiment corresponds to an example of a storage means that stores measures for reducing the error between the time required for the actual operation of the equipment 30 and the time required for the simulated operation, in association with the equipment 30. The generation unit 140 then reads out measures for reducing the error that has occurred in each of the multiple pieces of equipment 30 from the storage unit 110, and generates an image that displays a list of the measures in descending order of the error, as shown in the upper part of Fig. 34. In detail, the storage unit 110 stores the equipment that is the error factor, the factor, the difficulty of the measure for reducing the error, the effect of reducing the error when the measure is implemented, and the measure, in association with each other.
[0106] When the user 40 selects the rank "3" in the image at the top of Fig. 34, the generation unit 140 generates the image shown at the bottom of Fig. 34. This image displays the check results for the measures and problems corresponding to the selected rank. When the prototype operation button 707 is pressed, the display unit 180 displays the simulation results of the operation when the measures are implemented. In detail, the display unit 180 displays the time charts before and after the implementation of the measures in a format that allows comparison.
[0107] As described above, an image including a first image showing the operation history of the equipment and a second image showing the operation in a simulation is displayed, which makes it possible to easily verify the difference between the simulation and the actual operation.
[0108] Fourth Embodiment Next, a fourth embodiment will be described, focusing on the differences from the first embodiment described above. Note that the same reference numerals will be used for configurations that are the same as or equivalent to those in the first embodiment described above. In this embodiment, the description will focus on the function of the support device 10 that outputs support information that improves the production index of the line based on a simulation.
[0109] FIG. 35 illustrates an example in which the analysis unit 160 proposes improvements to the control program 12 based on a time chart obtained by simulation. Specifically, when the analysis unit 160 changes the order of operations of the equipment 30 defined in the control program 12 and simulates the control of the equipment 30 using the 3D simulator 13, if the change in order results in a reduction in cycle time while avoiding interference caused by contact between the equipment 30 and other devices, the analysis unit 160 outputs support information indicating the change in order as an improvement measure. The change in the order of operations may be selected randomly or may be performed according to a predefined algorithm. Furthermore, if the user decides to adopt the improvement measure, the correction unit 150 changes the control program 12 to implement the improvement measure. FIG. 35 illustrates a button for confirming the change in the order of operations being pressed with the cursor.
[0110] Furthermore, when components of the equipment 30 interfere with each other in the simulation, the analysis unit 160 may output, as support information, a time chart showing avoidance operations that prevent the components from interfering with each other, as shown in Fig. 36. Such a time chart showing an improvement measure is found, for example, by searching for changes in operation in a brute force manner.
[0111] Note that the improvement measures are not limited to changes in operation, but may also be changes in the weight or material of the equipment 30 or the workpiece. Constraints for searching for these improvement measures are set by the user. Constraints include, for example, fixing the type of the current drive source to be a servo motor or air cylinder, upper and lower stroke limits, and conditions for preventing interference between operating axes.
[0112] 37 shows an example in which the analysis unit 160 presents possible overlapping portions of events defined in the control program 12. In detail, when the analysis unit 160 causes the 3D simulator 13 to simulate simultaneous execution of operations that are to be executed sequentially by a plurality of pieces of equipment 30 defined in the control program 12, the analysis unit 160 outputs support information indicating, as an improvement measure, that the operations that are to be executed sequentially should be executed simultaneously if the cycle time can be shortened while avoiding interference caused by the plurality of pieces of equipment 30 coming into contact with each other.
[0113] There is a trade-off between avoiding interference as shown in Fig. 36 and shortening the cycle time by overlapping operations as shown in Fig. 37. Therefore, an index value indicating the likelihood of interference may be used, and the user 40 may select the control content by operating a slider corresponding to the index value on a control content editing screen as shown in Fig. 38. The index value is, for example, a value corresponding to the closest distance between the pieces of equipment 30.
[0114] Furthermore, the analysis unit 160 may suggest reducing the speed of the servo motor as a remedy. Specifically, the analysis unit 160 may detect peak values of acceleration / deceleration of the servo motor in a simulation using a 3D simulator, and output support information indicating reducing the acceleration / deceleration of the servo motor at the timing when the peak value is detected as a remedy.
[0115] Furthermore, the analysis unit 160 may suggest excluding unused program components from among the program components constituting the control program 12. For example, the analysis unit 160 may detect program components that define manual operation of the equipment 30 from the control program 12, and output support information indicating, as an improvement measure, excluding the detected program components from the scanning targets during automatic operation of the equipment 30. Specifically, as illustrated in FIG. 39 , an MC (Master Control) may be inserted into the unused parts during automatic operation to switch execution ON / OFF.
[0116] The analysis unit 160 may also propose an improvement measure such as shifting the peak of power consumption and utilizing regenerative power. Specifically, as shown in FIG. 40 , the analysis unit 160 calculates the transition of power consumption based on the operation of the equipment 30 during the cycle time. Then, instead of utilizing power from the main power source at the peak time, the analysis unit 160 may propose utilizing regenerative power from the operating axis of another piece of equipment at the same time, or discharging regenerative power generated and stored at a different time at that time. This is expected to level out power consumption over the cycle time, and reduce the rated power required for the main power source.
[0117] Furthermore, as shown in FIG. 41 , the analysis unit 160 may calculate the maximum size that does not cause interference for a part designated by the user 40 using the cursor 708 as a change target from the time chart and simulation results, and present the calculated size. Conventionally, actual operations had to be reproduced in a simulation space, and the designer had to visually check for interference and correct any interference that was found, which was a time-consuming process. In contrast, a display such as that shown in FIG. 41 can shorten the work time, efficiently avoid interference, and easily optimize the size of the part.
[0118] Furthermore, the analysis unit 160 may calculate the load factors of the servo motors and servo amplifiers from data in the storage unit 110, including a time chart, and predict temperature rise, as shown in FIG. 42 . If the temperature rise exceeds a threshold and is excessive, the analysis unit 160 may propose an operation pattern as an improvement measure that keeps the temperature rise within a predetermined tolerance range. Conventionally, the load factor was often calculated from the operating time within a single cycle time, but the user had to separately calculate the heat balance that takes into account the temperature rise, i.e., the integral value of the load factor and the balance between heat dissipation. In contrast, if an improvement measure such as that shown in FIG. 42 is proposed, deterioration of the equipment 30 can be suppressed.
[0119] The analysis unit 160 may also propose parameters for the equipment 30 based on a target value specified as the operation time of the equipment 30. For example, as shown in FIG. 43 , the analysis unit 160 may present recommended changes by performing a predetermined calculation or by referencing a database based on the operation selected by the user 40 and the specified target operation time. In detail, the analysis unit 160 predicts the machine position during operation of the equipment 30 and the vibration damping time after stopping based on the physical model and the data stored in the storage unit 110, and proposes changes necessary to achieve operation within the target time. Examples of changes include reducing the weight of the equipment 30, changing the motor output, and changing the air pressure. The prediction may be made using a prediction model obtained by machine learning from data on existing equipment.
[0120] In the conventional design process, mechanical design and cycle time estimation are often performed, followed by the creation of a time chart and the creation of a control program. Because the mechanical structure is already finalized at the time the time chart and control program are created, the next opportunity to review or modify the mechanical structure occurs at the time of launch or the next machine, resulting in increased drawing revisions and structural differences between the first machine and subsequent machines. In contrast, if a proposal like that shown in Figure 43 is made, mechanical design changes that should be made after the time chart is created can be presented, allowing for mechanical design modifications before launch. This is expected to shorten the launch period, reduce loss costs due to the purchase of unnecessary parts, and eliminate machine differences between the first machine and subsequent machines.
[0121] Furthermore, the analysis unit 160 may generate a control program according to the margin and risk levels specified by the user, as shown in FIG. 44 . Specifically, the analysis unit 160 predicts the machine position and post-stop vibration damping time during operation of the air cylinder from data stored in the storage unit 110. This predicted value is calculated along with prediction accuracy and precision. The prediction accuracy represents the range of temporal and spatial variation, and the precision represents the qualitative level of prediction accuracy. The analysis unit 160 then corrects and displays the prediction result according to the precision required by the user 40. The prediction may be performed using an external application or a model obtained by machine learning from big data.
[0122] The user 40 specifies the margin, which is an indicator of the tolerance for deviations between the actual travel time and elapsed position of each component relative to the predicted time, and the risk, which indicates the degree of impact of an accident that may occur if the machine position deviates significantly from the command value after the operation command is issued. If a motion axis with a high risk is a bottleneck in reducing cycle time, the analysis unit 160 suggests overlapping the motion of this motion axis to shorten the cycle time. The analysis unit 160 may also suggest a location where a sensor should be added to detect the motion axis at a certain time. For example, as shown in Figure 45, in a simulated operation of an air cylinder, it is suggested to add a sensor to detect whether the piston rod has moved outside the range where it interferes with other axes. Here, the location where the sensor should be added corresponds to the boundary of the interference range.
[0123] Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments. The above-described embodiments may be combined in any manner.
[0124] The functions of the support device 10 according to the above-described embodiment can be realized by dedicated hardware or by an ordinary computer system.
[0125] For example, by storing and distributing program P1 on a computer-readable recording medium such as a flexible disk, a CD-ROM (Compact Disk Read-Only Memory), a DVD (Digital Versatile Disk), or an MO (Magneto-Optical disk), and installing program P1 on a computer, a device that executes the above-mentioned processing can be configured.
[0126] Furthermore, the program P1 may be stored in a disk device of a server device on a communication network such as the Internet, and may be downloaded to a computer by superimposing it on a carrier wave, for example.
[0127] The above process can also be achieved by starting and executing the program P1 while transferring it via a network such as the Internet.
[0128] Furthermore, the above-described processing can also be achieved by executing all or part of program P1 on a server device, and executing program P1 while the computer sends and receives information about the processing via a communications network.
[0129] In addition, when the above-mentioned functions are realized by an operating system (OS) or by the OS working together with an application, only the parts other than the OS may be stored on a medium and distributed, or may be downloaded to a computer.
[0130] Furthermore, the means for realizing the functions of the assistance device 10 is not limited to software, and some or all of the functions may be realized by dedicated hardware or circuits.
[0131] The present disclosure allows various embodiments and modifications without departing from the broad spirit and scope of the present disclosure. Furthermore, the above-described embodiments are intended to explain the present disclosure and do not limit the scope of the present disclosure. In other words, the scope of the present disclosure is defined by the claims, not the embodiments. Various modifications made within the scope of the claims and the meaning of equivalent disclosures are considered to be within the scope of the present disclosure.
[0132] The present disclosure is suitable for designing facilities where equipment is located at FA sites.
[0133] 10 Support device, 11 Time chart, 12 Control program, 13 3D simulator, 20 PLC, 30-32, 301-303, 311-313, 321-324 Equipment, 31a, 32a Axis, 40 User, 41, 42 Work, 101 Processor, 102 Main memory unit, 103 Auxiliary memory unit, 104 Input unit, 105 Output unit, 106 Communication unit, 107 Internal bus, 110 Memory unit, 111 Equipment library, 112 Time chart data, 113 Equipment data, 114 Time length information, 120 Acquisition unit, 140 Generation unit, 150 Correction unit, 160 Analysis unit, 170 Interface unit, 180 Display unit, 332 Wall, 333 Pallet, 511-515, 517 Lines, 518 to 521 Areas, 522 to 525 Display parts, 531 Blocks, 541, 542 Sections, 621 Solid lines, 622, 623 Points, 624 Dashed lines, 701, 705 Lines, 702 Buttons, 703 Seek bars, 704 Pointers, 706 Messages, 707 Prototype operation buttons, 708 Cursors, 1000 Support systems, 1131 Simulation data, 1132 Auxiliary programs, P1 Programs.
Claims
1. A support program for causing a computer to function as: an acquisition means for acquiring a control program executed by a programmable controller to control a controlled device, and a time chart showing the operation of the controlled device when the control program is executed; a storage means for storing the acquired control program and the time chart in association with each other; a modification means for modifying, when a change is made to one of the control program or the time chart, a part of the other that corresponds to the change; and an output means for outputting the modified control program or time chart.
2. The assistance program of claim 1, further causing the computer to function as an analysis means for analyzing parameters to be set in the controlled device in order to realize the operation indicated by the time chart, wherein the acquisition means further acquires detailed information indicating details of the operation indicated by the time chart, the analysis means obtains the parameters by a predetermined calculation on the time chart and the detailed information, or by referring to data stored in a memory means in correspondence with the operation indicated by elements constituting the time chart and the detailed information, and the output means outputs display data for displaying the parameters.
3. The assistance program according to claim 1 or 2, wherein the output means outputs display data for highlighting an element of the time chart corresponding to an error when an error occurs when the control program is executed.
4. An assistance program as described in any one of claims 1 to 3, further causing the computer to function as a generating means for generating a return-to-origin procedure for the multiple controlled devices, wherein the acquiring means further acquires arrangement information indicating the arrangement of the multiple controlled devices, and the modifying means adds to the control program a program component that causes the multiple controlled devices to execute the return-to-origin procedure, and modifies the control program by adding an interlock description to the program component when the arrangement information indicates that interference will occur when the multiple controlled devices operate simultaneously.
5. The assistance program according to claim 1, further causing the computer to function as: a simulation means for simulating the operation of the controlled device according to the time chart; and an analysis means for analyzing at least one of a load and a stress in the simulated operation of the controlled device; and the output means for outputting display data for displaying the results of the analysis by the analysis means.
6. An assistance program as described in any one of claims 1 to 5, wherein the acquisition means acquires from the detection means at least one of detection results of the positions of axes constituting the controlled device and the timing at which the axes operate when the controlled device is manually operated, and the correction means adds to the control program a program component that operates the controlled device in the same manner as the detection result, or adds to the time chart a chart component when the controlled device operates in the same manner as the detection result.
7. An assistance device comprising: an acquisition means for acquiring a control program executed by a programmable controller to control a controlled device, and a time chart showing the operation of the controlled device when the control program is executed; a storage means for storing the acquired control program and the time chart in association with each other; a modification means for modifying a part of the control program or the time chart corresponding to a change made to the other when one of the control program or the time chart is changed; and an output means for outputting the modified control program or the time chart.
8. An assistance system comprising: the assistance device according to claim 7; and the programmable controller.
9. An assistance method comprising: an acquisition means for acquiring a control program executed by a programmable controller to control a controlled device, and a time chart showing the operation of the controlled device when the control program is executed, and storing the acquired control program and time chart in a memory means in association with each other; a modification means for modifying, when one of the control program and the time chart is changed, a part of the other corresponding to the change; and an output means for outputting the modified control program or time chart.
Citation Information
Patent Citations
Controller for program operation machine and converting device for control program
JP1998091227A
Method for generating ladder sequence parameter setting table
JP2000172310A
System and method for programming industrial controller and recording medium recording software of the system and method
JP2000259216A
Method or the like of changing ladder program
JP2009294966A
Time chart generation method, time chart generation program, and spreadsheet cell display method
JP2010009485A