WO2017141332A1 - 負荷分散装置 - Google Patents

負荷分散装置 Download PDF

Info

Publication number
WO2017141332A1
WO2017141332A1 PCT/JP2016/054338 JP2016054338W WO2017141332A1 WO 2017141332 A1 WO2017141332 A1 WO 2017141332A1 JP 2016054338 W JP2016054338 W JP 2016054338W WO 2017141332 A1 WO2017141332 A1 WO 2017141332A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
execution
programs
time
unit
Prior art date
Application number
PCT/JP2016/054338
Other languages
English (en)
French (fr)
Inventor
晃一 中川
寛 芦谷
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2016/054338 priority Critical patent/WO2017141332A1/ja
Priority to JP2016574030A priority patent/JP6150956B1/ja
Priority to US15/532,354 priority patent/US20180095441A1/en
Publication of WO2017141332A1 publication Critical patent/WO2017141332A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/052Linking several PLC's
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B21/00Systems involving sampling of the variable controlled
    • G05B21/02Systems involving sampling of the variable controlled electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/12Plc mp multi processor system

Definitions

  • the present invention relates to a load distribution device that causes a plurality of control devices to execute a plurality of execution target programs.
  • the total program end time which is the delay time, is shortened. That is, the total program end time when a plurality of control devices share and execute a plurality of execution target programs is shorter than the total program end time when one control device executes a plurality of execution target programs. Become.
  • the present invention has been made in view of the above, and an object of the present invention is to obtain a load distribution device that shortens the entire program end time.
  • the present invention provides a load distribution apparatus that causes a plurality of execution programs to execute a plurality of execution target programs, and each of the plurality of execution target programs includes a plurality of types.
  • Identification means for identifying which of the plurality of programs, acquisition means for acquiring the execution time information of each of the plurality of types of programs, and each of the plurality of execution target programs of the plurality of control devices
  • the combination means for creating a plurality of combinations when assigned to any one of the information obtained by the specifying means and the acquisition means are presumed that the execution time when the same type of program is executed is the same.
  • a prediction means for predicting the total program end time, which is a delay time from when the target program is distributed until the execution results of the plurality of execution target programs are returned to the distribution source
  • a selection unit that selects one combination in which the total program end time predicted by the prediction unit is shorter than a reference time, and the one combination selected by the selection unit Therefore, it comprises control means for allocating each of the plurality of execution target programs to any of the plurality of control devices and causing the plurality of control devices to execute the plurality of execution target programs.
  • the load distribution apparatus has an effect that the end time of all programs can be shortened.
  • FIG. 1 is a configuration diagram of a load distribution system including a load distribution apparatus according to a first embodiment.
  • the figure which shows the example of the combination which the combination means of FIG. 10 produces The figure which shows that some means which comprise the
  • FIG. 1 is a configuration diagram of a load distribution system 20 including a load distribution apparatus according to the first embodiment.
  • the load distribution apparatus according to the first exemplary embodiment is an apparatus that distributes execution of a plurality of execution target programs to a plurality of control apparatuses.
  • the load distribution device is the information terminal device 4, and the control device is a programmable logic controller.
  • the programmable logic controller is referred to as “PLC”.
  • PLC is an abbreviation for Programmable Logic Controller.
  • the load distribution device and the control device may be ordinary personal computers.
  • the personal computer is referred to as “PC”.
  • PC is an abbreviation for Personal Computer.
  • the load distribution system 20 includes a first PLC 1, a control network 2, an information network 3, an information terminal device 4, a maintenance terminal device 5, a second PLC 6, and a third PLC 7. And have.
  • An external device 8 is connected to the first PLC 1.
  • An example of the external device 8 is a sensor, a pump, or a valve.
  • An example of a sensor is a flow meter or a pressure gauge.
  • the first PLC 1 has a memory 10.
  • the maintenance terminal device 5 has a design tool 51 that stores a user program.
  • a user program from the design tool 51 of the maintenance terminal device 5 is stored in the memory 10 of the first PLC 1.
  • the first PLC 1 uses the user program stored in the memory 10 to acquire a value measured by the sensor of the external device 8 and outputs a control signal to the external device 8.
  • the first PLC 1 also has components other than the memory 10. The components other than the memory 10 included in the first PLC 1 will be described later with reference to FIG.
  • the control network 2 is a communication network that connects the first PLC 1, the second PLC 6, and the third PLC 7 to each other.
  • Each of the plurality of PLCs is connected to each other via the control network 2.
  • the first PLC 1, the second PLC 6, and the third PLC 7 can exchange data with each other in real time by using the shared memory in the control network 2.
  • An example of the shared memory is a cyclic memory. For ease of explanation, the shared memory is not shown in FIG.
  • the information network 3 is a communication network that connects the information terminal device 4, the first PLC 1, the second PLC 6, and the third PLC 7 to each other.
  • the information network 3 may be a local area network or the Internet.
  • the information terminal device 4 is composed of a PC.
  • the information terminal device 4 may be a dedicated device that is not a general-purpose PC.
  • the information terminal device 4 communicates with each of the first PLC 1, the second PLC 6, and the third PLC 7 via the information network 3 in accordance with a communication protocol.
  • An example of the communication protocol is TCP / IP (Transmission Control Protocol / Internet Protocol).
  • the information terminal device 4 has a storage device 40 including a database 41 and a memory 42.
  • the memory 42 stores MES and ERP.
  • MES is an abbreviation for Manufacturing Execution System, and is information for maximizing production.
  • ERP is an abbreviation for Enterprise Resource Planning and is information for maximizing profits.
  • the information terminal device 4 monitors the data possessed by the first PLC 1, stores the data possessed by the first PLC 1 in the database 41, and transmits a signal for controlling the first PLC 1 to the first PLC 1.
  • the information terminal device 4 also has components other than the storage device 40. Components other than the storage device 40 included in the information terminal device 4 will be described later with reference to FIGS.
  • FIG. 2 is a diagram showing details of the first PLC 1 and the information terminal device 4 constituting the load distribution system 20 of FIG.
  • FIG. 2 also shows the maintenance terminal device 5 and the second PLC 6.
  • FIG. 2 also shows an external database 90 that can communicate with each of the first PLC 1, the information terminal device 4, and the second PLC 6.
  • the first PLC 1 includes a memory 10, a program common execution unit 11, an execution result recording unit 12, and a storage unit 13.
  • the storage unit 13 stores a program code 14 and an execution schedule 15 related to the execution target program.
  • the program code 14 is a code related to a program that cooperates with MES and ERP stored in the memory 42 of the storage device 40 included in the information terminal device 4.
  • the program common execution means 11 is a means for executing an execution target program related to the program code 14.
  • the execution record recording means 12 is a means for recording the execution time of the program related to the program code 14 together with the identification information of the program code 14 in time series.
  • the information terminal device 4 includes a storage device 40, a program information storage unit 43, a signal definition information storage unit 44, an execution time prediction unit 45, a PLC selection unit 46, a program distribution unit 47, and a program common execution unit 48. And load distribution processing means 49.
  • the program information storage means 43 stores program information that stores the value of the program code 14 related to the program executed by the first PLC 1.
  • the signal definition information storage means 44 stores signal definition information including the name of the signal handled by the first PLC 1 and the connection destination from which the signal value is acquired.
  • the execution time predicting means 45 predicts a time required for executing the program when the program is executed next time based on the program information stored in the program information storing means 43.
  • the PLC selection unit 46 selects a PLC that executes the program based on the execution time predicted by the execution time prediction unit 45.
  • the program distribution unit 47 distributes the program to the PLC selected by the PLC selection unit 46.
  • the program common execution means 48 executes a process that allows the program to be executed even with a PLC different from the PLC selected by the PLC selection means 46.
  • the execution time prediction unit 45, the PLC selection unit 46, and the program distribution unit 47 may not be provided in the information terminal device 4.
  • the functions of the execution time prediction unit 45, the PLC selection unit 46, and the program distribution unit 47 may be realized on the cloud, or may be realized by one or a plurality of PLCs connected to the information terminal device 4.
  • the load distribution processing unit 49 will be described later with reference to FIG.
  • the operation of the load distribution system 20 includes a procedure for registering a program to be executed by the PLC and a procedure for selecting an optimum PLC from a plurality of PLCs and executing the program.
  • FIG. 3 is a flowchart showing a program registration procedure according to the first embodiment.
  • the signal definition information storage means 44 of the information terminal device 4 defines a signal handled by the execution target program.
  • a signal from the information terminal device 4 is stored in a memory.
  • the following equation (1) is an equation showing an example of the program code in the first embodiment.
  • the ID indicating the identification number of a product produced by a certain facility is “1234”
  • the number of the product is “TAG300”
  • the number is stored as a production record in the table TB1 of the database DB1. Is meant to do.
  • the table TB1 is provided with two fields. The first field is an ID field indicating a product identification number, and the second field is a COUNT field indicating the number of products produced.
  • the signals related to the database are DB1 and TB1
  • the signal related to the sensor is TAG300.
  • step S2 the signal definition information storage means 44 of the information terminal device 4 registers the destination from which the signal is acquired.
  • the destination from which the signal is acquired is a connection destination, and an example of the connection destination is a sensor or a database. That is, the connection destination is a field of a table in the PLC or the external database 90.
  • the connection destination Is the first PLC 1 as shown in FIG.
  • FIG. 4 is a diagram showing a storage example of signal registration information in the first embodiment.
  • a signal name indicating the meaning of the signal an ID for identifying the signal, an address assigned to the signal, and a connection destination from which the signal value is acquired are defined as attributes. .
  • the above address is replaced with a field in the database.
  • FIG. 4 shows that for the above limit sensor, the signal name is “equipment X production quantity”, the ID for identifying the signal in the system is “TAG300”, and the value is the address D3000 of the first PLC 1. It can be obtained by referring to.
  • the signal whose ID is “TAG200” is a signal indicating that the facility X has failed, and the content of the signal whose ID is “TAG200” can be acquired by reading the address D2000 of the second PLC 6.
  • FIG. 4 shows that the signal whose ID is “TAG400” is a signal indicating the operation time of the process 1, and the content of the signal is stored in a field called RunTime of the table TB1 of the external database DB1. It shows that.
  • the signal definition information storage unit 44 of the information terminal device 4 describes the contents of the program code 14 in the program information storage unit 43 using the design tool 51 of the maintenance terminal device 5. In this case, the signal ID registered in the signal registration information is used.
  • step S4 the design tool 51 of the maintenance terminal device 5 registers the program code 14 in the program information storage means 43.
  • the design tool 51 registers in the program information storage unit 43 related information indicating which program operates which signal and how.
  • An example of an operation is extraction or insertion.
  • extraction is expressed as SELECT
  • insertion is expressed as INSERT.
  • the program information registered in the program information storage unit 43 indicates program attributes. By specifying the program name or the program identification information, it is possible to know which PLC memory address the program is used in, or how the database table is operated by the program.
  • FIG. 5 is a diagram showing an example of storing program information in the first embodiment.
  • FIG. 5 shows, for example, that the program JOB ⁇ reads the value of the signal TAG007 from the database and writes it in the signal TAG300.
  • the signal TAG007 is a production instruction
  • the value of the signal TAG007 is obtained by reading the Order part of the field of the table TB1 of the database DB1.
  • the signal of the write destination is the signal TAG300
  • the signal TAG300 indicates the production number of the equipment X as shown in FIG. 4, so the value of the signal TAG007 is written to the address D3000 of the first PLC1.
  • step S5 of FIG. 3 when the registration is completed for all programs (Yes in step S5), the program registration ends. If registration has not been completed for all programs (No in step S5), the process proceeds to step S3.
  • FIG. 6 is a flowchart showing a procedure for instructing execution of a program by selecting any one PLC from a plurality of PLCs.
  • the execution time prediction unit 45 of the information terminal device 4 reads a registered program from the program information storage unit 43.
  • step S102 the execution time predicting means 45 of the information terminal device 4 acquires the predicted time taken until the execution of the currently executed program is completed. If the predicted time is 0, the PLC selecting means 46 determines the information terminal device 4 The PLC with the earliest scheduled execution end time is selected from the execution schedule 15 of the PLC currently connected to. When the predicted time is not 0, the PLC selection unit 46 selects the PLC that is the smallest by adding the predicted time to the scheduled execution end time of the PLC. For example, the predicted time is 40 seconds, the program currently executed in the first PLC 1 is scheduled to end after 20 seconds, and the program currently executed in the second PLC 6 is scheduled to end after 10 seconds. If the program currently being executed in the third PLC 7 is scheduled to end after 80 seconds, the PLC selecting means 46 selects the second PLC 6 and adds 40 to the execution schedule 15 to end the execution. Update the time.
  • step S103 the program distribution unit 47 of the information terminal device 4 distributes the program to the PLC selected by the PLC selection unit 46. Distribution is performed according to a general-purpose protocol.
  • a general-purpose protocol is HTTP / FTP (Hypertext Transfer Protocol / File Transfer Protocol).
  • FIG. 7 is a diagram for explaining program synchronization in the first embodiment.
  • a program for handling the first sensor 17 and the second sensor 18 is executed in the first PLC 1, the second PLC 6, and the third PLC 7.
  • the signal from the first sensor 17 is input to the second terminal of the I / O terminal unit 16 provided in the first PLC 1, and the signal from the second sensor 18 is the fifth terminal of the I / O terminal unit 16. Input to the terminal.
  • the value of the signal input to the first PLC 1 is written to the first address and the fifth address of the local memory 21 of the first PLC 1 by the CPU of the first PLC 1.
  • the configuration of the address of the local memory of the second PLC 6 is the same as the configuration of the address of the local memory of the first PLC 1, but the second PLC 6 does not have the I / O terminal unit 16.
  • the values measured by the first sensor 17 and the second sensor 18 are not written in the local memory of the PLC 6.
  • the first PLC 1, the second PLC 6 and the third PLC 7 have a cyclic memory in the control network 2.
  • the cyclic memory is a common memory for the first PLC 1, the second PLC 6, and the third PLC 7.
  • the cyclic memory has areas of the first PLC 1, the second PLC 6 and the third PLC 7. That is, the first cyclic memory 19 corresponding to the first PLC 1, the second cyclic memory 61 corresponding to the second PLC 6, and the third cyclic memory 71 corresponding to the third PLC 7 are provided. Exists. When data is written into the first PLC 1 area of the first cyclic memory 19, the data is copied to the first PLC 1 area of the second cyclic memory 61. Similarly, the data is copied to the first PLC 1 area of the third cyclic memory 71.
  • step S104 in FIG. 6 the first PLC 1 executes a program.
  • the first PLC 1 stores the program ID for identifying the program and the execution start time of the program in the execution result recording means 12 before executing the program.
  • the first PLC 1 detects the entry of the program ID after the execution of the program is completed, and stores the execution end time in the execution schedule 15 and records the elapsed time as shown in FIG.
  • FIG. 8 is a diagram illustrating a storage example of program execution records in the first embodiment.
  • FIG. 8 shows that the execution of the program JOB ⁇ started at 11: 30: 30.5 seconds on June 30, 2015 and ended at 11: 30: 35.0 seconds on June 30, 2015.
  • the elapsed time is 4.5 seconds.
  • FIG. 9 is a diagram relating to a program execution time prediction process in the first embodiment. As shown in FIG. 9, the program execution time is proportional to the number of connected databases, the number of records, and the number of fields.
  • the execution time predicting means 45 statistically analyzes the relationship between the external factor and the execution time function. For example, the execution time predicting unit 45 analyzes the time required for reading data from the memory of a specific PLC. The execution time prediction unit 45 formulates the prediction time based on the causal relationship derived from the analysis result. Formulation is, in other words, modeling. A widely known method is used for modeling. An example of a widely known method is the least square method.
  • the execution time Ti of the program is modeled as the following equation (2).
  • Ti 1.5 ⁇ (number of databases to be communicated) ⁇ 1000 + 2.2 ⁇ (number of table columns) (2)
  • the number of databases is 2 and the number of columns of the table is 1000
  • it can be predicted that the program execution time is 5200 ms by using the equation (2).
  • a value obtained by adding Ti to the current time is recorded in the execution end time field of the execution schedule 15. In the elapsed time field, 0 is recorded, so that the predicted time and the actual result can be distinguished. If all the programs have been executed, the process ends (Yes in S106). If all the programs have not been executed (No in S106), the process proceeds to Step S101.
  • FIG. 10 is a diagram for explaining the load distribution apparatus according to the first embodiment.
  • the load distribution apparatus is the information terminal apparatus 4.
  • the control device is a PLC. That is, in the first embodiment, the plurality of control devices are the first PLC 1, the second PLC 6, and the third PLC 7.
  • Embodiment 1 the following situation is assumed for a plurality of execution target programs and execution times. That is, the plurality of programs to be executed are nine programs of program A1, program A2, program A3, program B1, program B2, program B3, program C1, program C2, and program C3.
  • the program A1, the program A2, and the program A3 are type A programs.
  • the program B1, the program B2, and the program B3 are type B programs.
  • the program C1, the program C2, and the program C3 are type C programs.
  • the type A program is a program related to cutting
  • the type B program is a program related to machining
  • the type C program is a program related to assembly.
  • the execution time of the type A program is the execution time a. That is, the execution time of each of the program A1, the program A2, and the program A3 is the execution time a.
  • the execution time of the type B program is the execution time b. That is, the execution time of each of the program B1, the program B2, and the program B3 is the execution time b.
  • the execution time b is shorter than the execution time a.
  • the execution time of the type C program is the execution time c. That is, the execution time of each of the program C1, the program C2, and the program C3 is the execution time c.
  • the execution time c is longer than the execution time a.
  • the sum of the execution time a and the execution time b is the same as the execution time c.
  • the load distribution processing means 49 of the information terminal device 4 includes a specifying means 91, an acquisition means 92, a combination means 93, a prediction means 94, a calculation means 95, a selection means 96, and a control means. 97, load detection means 98, determination means 99, time detection means 79, and storage means 78.
  • the specifying unit 91 specifies which of a plurality of types of programs each of a plurality of execution target programs is. Specifically, the specifying unit 91 specifies that the program A1, the program A2, and the program A3 among the plurality of execution target programs are type A programs. The specifying unit 91 specifies that the program B1, the program B2, and the program B3 among the plurality of programs to be executed are type B programs. The specifying unit 91 specifies that the program C1, the program C2, and the program C3 among the programs to be executed are type C programs.
  • the acquisition unit 92 acquires information on the execution time of each of a plurality of types of programs. Specifically, the acquisition unit 92 has an execution time a of the type A program, an execution time b shorter than the execution time a, and an execution time of the type C program. Information indicating that the time is an execution time c longer than the execution time a is acquired. As described above, in the first embodiment, since the sum of the execution time a and the execution time b is the same as the execution time c, the acquisition unit 92 determines that the sum of the execution time a and the execution time b is the execution time c. Information indicating that they are the same is also acquired.
  • the combination means 93 creates a plurality of combinations when each of the plurality of execution target programs is assigned to one of the first PLC 1, the second PLC 6, and the third PLC 7, which is an example of a plurality of control devices. .
  • the combination means 93 is provided in any one of the first PLC1, the second PLC6, and the third PLC7, or in any two of the first PLC1, the second PLC6, and the third PLC7, or all of them.
  • a combination is created by assigning at least two programs to be executed having different execution times.
  • FIG. 11 is a diagram showing an example of combinations created by the combination means 93 of FIG.
  • the combination means 93 creates a plurality of combinations including the five combinations shown in FIGS. 11 (A) to 11 (E). Specifically, as shown in FIG. 11A, the combination means 93 assigns the program A1, the program B1, and the program C1 to the first PLC1, and the program A2, the program B2, and the program C2 to the second PLC6. A combination is created in which program A3, program B3, and program C3 are allocated to the third PLC 7.
  • “1-PLC” means the first PLC 1
  • “2-PLC” means the second PLC 6
  • “3-PLC” means the third PLC 7.
  • the program A1, the program B2, and the program C2 are assigned to the first PLC1, and the program B1, the program A2, and the program A3 are assigned to the second PLC6. Then, one combination is created in which the program C1, the program B3, and the program C3 are assigned to the third PLC 7.
  • the combination means 93 assigns program A1, program A2 and program C3 to the first PLC1, assigns program B1, program C2 and program A3 to the second PLC6, One combination in which the program C1, the program B2, and the program B3 are allocated to the third PLC 7 is created.
  • the combination means 93 assigns the program A1, the program B2, the program A2, and the program B3 to the first PLC1, and the program B1, the program C2, and the program A3 are assigned to the second PLC6. And a single combination in which the program C1 and the program C3 are assigned to the third PLC 7 is created.
  • the combination means 93 assigns the program A1, the program B1, the program C1, the program C2, and the program C3 to the first PLC1, and the program A2, the program A3, the program B2, and the program One combination is created in which B3 is assigned to the second PLC6.
  • the predicting unit 94 delays each of the plurality of combinations created by the combining unit 93 until the execution result of the plurality of execution target programs is returned to the distribution source after the plurality of execution target programs are distributed. Predict the total program end time, which is the time. Specifically, the predicting means 94 estimates that the execution time when the same type of program is executed is the same, and obtains the information obtained by the specifying means 91 and the information obtained by the obtaining means 92. Used, a delay time from when a plurality of execution target programs are distributed to a result of execution of the plurality of execution target programs being returned to a distribution source for each of a plurality of combinations created by the combination means 93 Predict the end time of all programs.
  • the information obtained by the specifying unit 91 is information for specifying which of a plurality of types of programs each of a plurality of execution target programs is.
  • the information acquired by the acquisition unit 92 is information on the execution time of each of a plurality of types of programs.
  • FIG. 11 is a diagram showing an example of a combination created by the combination means 93 of FIG. 10 as described above, but it is also a figure showing prediction results of all program end times of a plurality of combinations created by the combination means 93. is there.
  • the total program end time means a delay time from when a plurality of execution target programs are distributed until a result of execution of the plurality of execution target programs is returned to the distribution source.
  • the total program end time is the time when the first PLC 1 executes the program A1, the program B1, and the program C1, and is the execution time a, the execution time b, and the execution time c. Total time.
  • the execution time when the second PLC 6 executes the program A2, the program B2, and the program C2 is also the same as the execution time when the first PLC1 executes the program A1, the program B1, and the program C1.
  • the execution time when the third PLC 7 executes the program A3, the program B3, and the program C3 is also the same as the execution time when the first PLC1 executes the program A1, the program B1, and the program C1.
  • the total program end time is the time when the third PLC 7 executes the program C1, the program B3, and the program C3, and is the execution time b and twice the execution time c. Total time.
  • the total program end time is the time when the first PLC 1 executes the program A1, the program A2, and the program C3, which is twice the execution time a and the execution time c. Total time.
  • the total program end time is the time when the first PLC 1 executes the program A1, the program B2, the program A2, and the program B3, which is twice the execution time a and the execution time. It is the total time with 2 times b.
  • the total program end time is the second PLC 6 for the program B1, the program C2, and the program A3. Is the total time of the execution time b, the execution time c, and the execution time a.
  • the total program end time is the time when the third PLC 7 executes the program C1 and the program C3, and is also twice the execution time c. Furthermore, the total program end time in the combination of FIG. 11D is the same as the total program end time in the combination of FIG.
  • the total program end time is the time when the first PLC 1 executes the program A1, the program B1, the program C1, the program C2, and the program C3, and the execution time a This is the total time of time b and three times execution time c.
  • the calculating unit 95 calculates a reference time that is a determination criterion when selecting one combination from a plurality of combinations created by the combining unit 93. Specifically, the calculation means 95 estimates that the execution times when the same type of program is executed are the same, and obtains the information obtained by the specifying means 91 and the information obtained by the acquisition means 92.
  • the same type of programs among the plurality of execution target programs is assigned to the same PLC among the first PLC 1, the second PLC 6, and the third PLC 7, which is an example of a plurality of control devices, and a plurality of programs A plurality of programs to be executed are distributed when different types of programs to be executed are assigned to different PLCs of the first PLC 1, the second PLC 6, and the third PLC 7, respectively.
  • a reference time that is a delay time from when the execution results of a plurality of execution target programs are returned to the distribution source is calculated.
  • FIG. 11 is a diagram showing an example of a combination created by the combination means 93 of FIG. 10 as described above, but is also a figure showing a reference time calculated by the calculation means 95.
  • the first PLC 1 executes the program A1, the program A2, and the program A3, the second PLC 6 executes the program B1, the program B2, and the program B3, and the third PLC 7 executes the program C1.
  • the calculation means 95 is a delay time from when a plurality of execution target programs are distributed until a result of execution of the plurality of execution target programs is returned to the distribution source in the combination shown in FIG. A reference time is calculated.
  • the reference time calculated by the calculation means 95 is three times the execution time c as can be understood from FIG.
  • FIG. 11G shows a combination in which nine programs of program A1, program B1, program C1, program A2, program B2, program C2, program A3, program B3, and program C3 are assigned to the first PLC1. ing.
  • the selection unit 96 selects one combination that is shorter than the reference time calculated by the calculation unit 95 from the total program end time predicted by the prediction unit 94 from the plurality of combinations created by the combination unit 93.
  • the reference time is a criterion for selecting one combination from a plurality of combinations created by the combination means 93.
  • the selection unit 96 selects the combination having the shortest total program end time predicted by the prediction unit 94 from among the plurality of combinations created by the combination unit 93. In the example of FIG. 11, the total program end time in the combination of FIG. 11A or FIG. 11D is the shortest. Therefore, the selection unit 96 selects from the plurality of combinations created by the combination unit 93. 11 (A) or the combination of FIG. 11 (D) is selected.
  • the selection means 96 When the selection means 96 has a rule that does not select a combination in which a plurality of programs of the same type are assigned to any one PLC, the total program end time and the figure in the combination of FIG. Although the total program end time in the combination of 11 (D) is equal, the selection means 96 selects the combination in FIG. 11 (A). This is because, in the combination of FIG. 11D, a plurality of programs of the same type, that is, the program C1 and the program C3 are assigned to the third PLC 7.
  • the selection unit 96 selects the combination whose total program end time predicted by the prediction unit 94 is shorter than the reference time calculated by the calculation unit 95 from among the plurality of combinations created by the combination unit 93. Select one of the following. The total program end time of the combination of FIG. 11B and the total program end time of the combination of FIG. 11C are shorter than the reference time. Therefore, the selection means 96 may select the combination of FIG. 11 (B) or the combination of FIG. 11 (C). In any case, the selection unit 96 selects one combination having a total program end time shorter than the reference time from among a plurality of combinations. Therefore, if the information terminal device 4 which is a load distribution device is used, when a plurality of execution target programs are executed by a plurality of control devices, the effect that the total program end time can be shortened can be obtained.
  • the control unit 97 assigns each of the plurality of execution target programs to one of the first PLC 1, the second PLC 6, and the third PLC 7 according to the combination selected by the selection unit 96, thereby The first PLC1, the second PLC6, and the third PLC7 are caused to execute the program.
  • the control unit 97 assigns the program A1, the program B1, and the program C1 to the first PLC1, executes them, and executes the program A2, program B2 and program C2 are assigned to the second PLC 6 and executed, and program A3, program B3 and program C3 are assigned to the third PLC 7 and executed.
  • the load detection unit 98 detects the load of the first PLC 1.
  • the first PLC 1 is an example of a specific control device among a plurality of control devices.
  • the determination unit 99 determines whether or not the load detected by the load detection unit 98 is equal to or greater than a threshold for executing a process for distributing the load. When the determination unit 99 determines that the load detected by the load detection unit 98 is equal to or greater than the threshold value, the specifying unit 91, the acquisition unit 92, the combination unit 93, the prediction unit 94, the calculation unit 95, the selection unit 96, The control means 97 performs the function which each has.
  • the specifying unit 91, the acquiring unit 92, the combining unit 93, the predicting unit 94, the calculating unit 95, the selecting unit 96, and the control unit 97 determine that the load detected by the load detecting unit 98 is equal to or more than the above threshold value. Even in cases other than those determined by 99, the functions of each may be executed.
  • the time detection means 79 detects the actual execution time of each of a plurality of execution target programs.
  • the storage unit 78 stores the information obtained by the time detection unit 79.
  • the acquisition unit 92 may acquire information on the execution time of each of a plurality of types of programs from the storage unit 78.
  • the storage unit 78 stores the actual execution time of each of a plurality of execution target programs executed in the past.
  • the acquisition unit 92 estimates that the execution time for the same type of program is the same as the past execution time, and from the information stored in the storage unit 78, information on the execution time of each of the plurality of types of programs. To get. More specifically, it is assumed that the storage unit 78 stores the past execution time of the type A program.
  • the acquisition unit 92 determines that the execution time of the type A program to be executed in the future is the same as the past execution time of the type A program stored in the storage unit 78, and the program is a type A program.
  • Information on the past execution time of the type A program stored in the storage means 78 as information on the execution time of each of A1, program A2, and program A3 may be acquired.
  • the information terminal device 4 may be any one of the first PLC 1, the second PLC 6, and the third PLC 7, each of which is an example of a plurality of control devices. Create multiple combinations when assigned.
  • the information terminal device 4 is a delay time from when the plurality of execution target programs are distributed to the result of execution of the plurality of execution target programs being returned to the distribution source for each of the plurality of created combinations. Predict the end time of all programs.
  • the information terminal device 4 selects one combination having a predicted total program end time that is shorter than the reference time calculated by the calculation means 95 from the plurality of generated combinations. Thereby, the information terminal device 4 can make the total program end time shorter.
  • the selection means 96 of the information terminal device 4 selects the combination with the shortest total program end time from among the plurality of combinations created, the information terminal device 4 can make the total program end time the shortest.
  • the combination means 93 is one of the first PLC 1, the second PLC 6, and the third PLC 7, each of which is an example of a plurality of control devices. Create multiple combinations when assigned.
  • the combination means 93 assigns at least two programs to be executed whose execution times are contradictory to at least one of the first PLC 1, the second PLC 6, and the third PLC 7, which are examples of a plurality of control devices. To create a single combination.
  • Two execution target programs whose execution times conflict with each other are the first preset from the top of the plurality of execution target programs when the plurality of execution target programs are arranged in descending order of execution time. And one of a plurality of programs that are lower than the first order and set in advance from the second order to the lowest order.
  • the first rank is a rank lower than the highest rank
  • the second rank is a rank higher than the lowest rank.
  • An example of two execution target programs having opposite execution times is one of the programs with the longest execution time and one of the programs with the shortest execution time among the plurality of execution target programs.
  • an example of two execution target programs having opposite execution times is one of a type B program and one of a type C program.
  • the reference time is calculated by the calculation means 95.
  • the reference time may not be calculated by the calculation means 95 but may be determined in advance.
  • the selection unit 96 selects the total program end time predicted by the prediction unit 94 from the plurality of combinations created by the combination unit 93 from a predetermined reference time. Choose one combination that is a short time. If the reference time is appropriately set, the information terminal device 4 can shorten the total program end time.
  • the combination means 93 is assigned to one of the first PLC 1, the second PLC 6, and the third PLC 7, each of which is a plurality of execution target programs. Create multiple combinations of cases.
  • the combination means 93 includes the first PLC 1, the second PLC 6, and the third PLC in which at least two of the execution target programs out of the plurality of execution target programs are examples of the plurality of control devices. Only one combination assigned to at least one PLC 7 may be created.
  • the control unit 97 assigns each of the plurality of execution target programs to one of the first PLC 1, the second PLC 6, and the third PLC 7 in accordance with the combination created by the combination unit 93. Are executed by the first PLC 1, the second PLC 6, and the third PLC 7. Even in this case, the end time of the entire program becomes shorter. Since the two execution target programs whose execution times are contradictory have been described above, description thereof is omitted here.
  • examples of the plurality of control devices are the first PLC 1, the second PLC 6, and the third PLC 7.
  • the plurality of control devices are not limited to the three PLCs of the first PLC 1, the second PLC 6, and the third PLC 7.
  • the plurality of control devices may be two PLCs of the first PLC 1 and the second PLC 6, or may be four or more PLCs.
  • the number of the plurality of control devices is determined by, for example, the production cost when used in a situation where a product having a plurality of PLCs is produced.
  • FIG. 12 is a diagram showing that at least a part of means constituting the information terminal device 4 of FIG.
  • the processing circuit 77 is dedicated hardware. That is, the processing circuit 77 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination thereof. It is a thing.
  • identification means 91 One of identification means 91, acquisition means 92, combination means 93, prediction means 94, calculation means 95, selection means 96, control means 97, load detection means 98, determination means 99, and time detection means 79 constituting the information terminal device 4.
  • the unit may be dedicated hardware separate from the rest.
  • the part or the whole may be a processor 75 that executes a program stored in the memory 76.
  • FIG. 13 is a diagram showing that at least a part of means constituting the information terminal device 4 of FIG.
  • the processor 75 is a CPU (Central Processing Unit), a processing device, an arithmetic device, a microprocessor, a microcomputer, or a DSP (Digital Signal Processor).
  • the function of at least a part of the means constituting the information terminal device 4 is the processor 75 and software, firmware, or a combination of software and firmware. It is realized by.
  • Software or firmware is described as a program and stored in the memory 76.
  • the processor 75 reads out and executes the program stored in the memory 76, thereby realizing functions of some means constituting the information terminal device 4.
  • the memory 76 for storing the program to become. It can be said that the program stored in the memory 76 causes the computer to execute the procedure or method of some means constituting the information terminal device 4.
  • the memory 76 is nonvolatile or volatile, such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), etc.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • flash memory EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), etc.
  • Semiconductor memory magnetic disk, flexible disk, optical disk, compact disk, mini disk, DVD or the like.
  • the functions of a plurality of means constituting the information terminal device 4 may be partially realized by dedicated hardware, and the rest may be realized by software or firmware.
  • the plurality of means constituting the information terminal device 4 can realize the functions of the plurality of means constituting the information terminal device 4 by hardware, software, firmware, or a combination thereof.
  • the configuration described in the above embodiment shows an example of the contents of the present invention, and can be combined with another known technique, and can be combined with other configurations without departing from the gist of the present invention. It is also possible to omit or change the part.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

負荷分散装置である情報端末装置4は、複数の実行対象のプログラムの各々が複数の制御装置である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段93と、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段94と、作成された複数の組み合わせのなかから全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段96とを有する。

Description

負荷分散装置
 本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置に関する。
 ひとつの制御装置が複数の実行対象のプログラムを実行する場合、ひとつの制御装置の処理の負担は大きい。そのため、複数の実行対象のプログラムを複数の制御装置に実行させる技術が提案されている(例えば、特許文献1、2及び3参照)。その技術によれば、複数の実行対象のプログラムを実行する際の処理の負担は複数の制御装置に分散され、各制御装置における処理の負担は小さくなる。
 複数の実行対象のプログラムが複数の制御装置に分散して割り当てられると、複数の実行対象のプログラムが配信されてから、複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間は短くなる。つまり、複数の制御装置が複数の実行対象のプログラムを分担して実行する場合の全プログラム終了時間は、ひとつの制御装置が複数の実行対象のプログラムを実行する場合の全プログラム終了時間よりも短くなる。
特開平9-91011号公報 特開平9-160890号公報 特開2002-140313号公報
 しかしながら、従来の技術を用いて複数の制御装置が複数の実行対象のプログラムを分担して実行する場合であっても、特定の制御装置の処理の負荷が大きい場合があり、その場合、全プログラム終了時間はまだ長いという課題がある。
 本発明は、上記に鑑みてなされたものであって、全プログラム終了時間をより短くする負荷分散装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備えることを特徴とする。
 本発明にかかる負荷分散装置は、全プログラム終了時間をより短くすることができるという効果を奏する。
実施の形態1にかかる負荷分散装置を含む負荷分散システムの構成図 図1の負荷分散システムを構成する第1のPLC及び情報端末装置の詳細を示す図 実施の形態1におけるプログラムの登録の手順を示すフローチャート 実施の形態1における信号登録情報の格納例を示す図 実施の形態1におけるプログラム情報の格納例を示す図 複数のプログラマブルロジックコントローラのなかからいずれかひとつのプログラマブルロジックコントローラを選択してプログラムの実行を指示する手順を示すフローチャート 実施の形態1におけるプログラムの同期を説明するための図 実施の形態1におけるプログラム実行記録の格納例を示す図 実施の形態1におけるプログラム実行時間予測処理に関する図 実施の形態1の負荷分散装置を説明するための図 図10の組み合わせ手段が作成する組み合わせの例を示す図 図10の情報端末装置を構成する一部の手段が処理回路であることを示す図 図10の情報端末装置を構成する一部の手段がプロセッサであることを示す図
 以下に、本発明の実施の形態にかかる負荷分散装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、実施の形態1にかかる負荷分散装置を含む負荷分散システム20の構成図である。実施の形態1にかかる負荷分散装置は、複数の実行対象のプログラムの実行を複数の制御装置に分担させる装置である。実施の形態1では、負荷分散装置は情報端末装置4であり、制御装置はプログラマブルロジックコントローラである。以下では、プログラマブルロジックコントローラを「PLC」と記載する。PLCは、Programmable Logic Controllerの略語である。しかしながら、負荷分散装置及び制御装置は通常のパーソナルコンピュータであってもよい。以下では、パーソナルコンピュータを「PC」と記載する。PCは、Personal Computerの略語である。
 図1に示す通り、負荷分散システム20は、第1のPLC1と、制御ネットワーク2と、情報ネットワーク3と、情報端末装置4と、保守端末装置5と、第2のPLC6と、第3のPLC7とを有する。第1のPLC1には、外部機器8が接続される。外部機器8の一例は、センサ、ポンプ又はバルブである。センサの一例は、流量計又は圧力計である。
 第1のPLC1は、メモリ10を有する。保守端末装置5は、ユーザプログラムを記憶している設計ツール51を有する。第1のPLC1のメモリ10には、保守端末装置5の設計ツール51からのユーザプログラムが格納される。第1のPLC1は、メモリ10に格納されたユーザプログラムを用いて、外部機器8のセンサによって測定された値を取得し、外部機器8に制御信号を出力する。第1のPLC1は、メモリ10以外の構成要素も有する。第1のPLC1が有するメモリ10以外の構成要素の説明は、図2を用いて後に行う。
 制御ネットワーク2は、第1のPLC1、第2のPLC6及び第3のPLC7を相互に接続する通信ネットワークである。制御ネットワーク2を介して、複数のPLCの各々は相互に接続される。第1のPLC1、第2のPLC6及び第3のPLC7は、制御ネットワーク2における共有メモリを用いることにより、リアルタイムに相互にデータを交換することができる。共有メモリの一例は、サイクリックメモリである。説明を簡単に行うために、図1には、共有メモリは示されていない。
 情報ネットワーク3は、情報端末装置4、第1のPLC1、第2のPLC6及び第3のPLC7を相互に接続する通信ネットワークである。情報ネットワーク3は、ローカルエリアネットワークであってもよいし、インターネットであってもよい。
 情報端末装置4は、PCによって構成されている。情報端末装置4は、汎用のPCではない専用の装置であってもよい。情報端末装置4は、通信プロトコルにしたがって、情報ネットワーク3を介して第1のPLC1、第2のPLC6及び第3のPLC7の各々と通信する。通信プロトコルの一例は、TCP/IP(Transmission Control Protocol/Internet Protocol)である。
 情報端末装置4は、データベース41とメモリ42とを含む記憶装置40を有する。メモリ42には、MES及びERPが格納されている。MESは、Manufacturing Execution Systemの略語であって、生産の最大化を図るための情報である。ERPは、Enterprise Resource Planningの略語であって、利益の最大化を図るための情報である。情報端末装置4は、第1のPLC1が有するデータを監視し、第1のPLC1が有するデータをデータベース41に保存し、第1のPLC1を制御するための信号を第1のPLC1に送信する。情報端末装置4は、記憶装置40以外の構成要素も有する。情報端末装置4が有する記憶装置40以外の構成要素の説明は、図2及び図10を用いて後に行う。
 図2は、図1の負荷分散システム20を構成する第1のPLC1及び情報端末装置4の詳細を示す図である。図2には、保守端末装置5及び第2のPLC6も示されている。図2には、第1のPLC1、情報端末装置4及び第2のPLC6の各々と通信することができる外部データベース90も示されている。
 第1のPLC1は、メモリ10と、プログラム共通実行手段11と、実行実績記録手段12と、記憶手段13とを有する。記憶手段13は、実行対象のプログラムに関連するプログラムコード14と実行スケジュール15とを記憶する。プログラムコード14は、情報端末装置4が有する記憶装置40のメモリ42に格納されているMES及びERPと連携するプログラムに関するコードである。プログラム共通実行手段11は、プログラムコード14に関連する実行対象のプログラムを実行する手段である。実行実績記録手段12は、プログラムコード14に関連するプログラムの実行時間をプログラムコード14の識別情報と共に時系列に記録する手段である。
 情報端末装置4は、記憶装置40と、プログラム情報記憶手段43と、信号定義情報記憶手段44と、実行時間予測手段45と、PLC選択手段46と、プログラム配信手段47と、プログラム共通実行手段48と、負荷分散処理手段49とを有する。プログラム情報記憶手段43は、第1のPLC1によって実行されるプログラムに関連するプログラムコード14の値を格納したプログラム情報を記憶する。信号定義情報記憶手段44は、第1のPLC1によって扱われる信号の名称と信号の値を取得する接続先とを含む信号定義情報を記憶する。
 実行時間予測手段45は、プログラム情報記憶手段43によって記憶されているプログラム情報をもとに、次にプログラムが実行されるときにそのプログラムの実行に必要な時間を予測する。PLC選択手段46は、実行時間予測手段45によって予測された実行時間をもとにプログラムを実行するPLCを選択する。プログラム配信手段47は、PLC選択手段46によって選択されたPLCにプログラムを配信する。プログラム共通実行手段48は、PLC選択手段46によって選択されたPLCとは異なるPLCでもプログラムが実行されることを可能にする処理を実行する。
 実行時間予測手段45、PLC選択手段46及びプログラム配信手段47は、情報端末装置4に設けられなくてもよい。実行時間予測手段45、PLC選択手段46及びプログラム配信手段47の各機能は、クラウド上で実現されてもよいし、情報端末装置4と接続されるひとつ又は複数のPLCによって実現されてもよい。負荷分散処理手段49の説明は、図10を用いて後に行う。
 次に、実施の形態1の負荷分散システム20の動作を説明する。負荷分散システム20の動作は、PLCで実行されるプログラムを登録する手順と、複数のPLCのなかから最適なPLCを選択してプログラムを実行させる手順とを含む。
 (手順1:プログラムの登録)
 図3のフローチャートにしたがって、プログラムの登録の手順を説明する。図3は、実施の形態1におけるプログラムの登録の手順を示すフローチャートである。ステップS1において、情報端末装置4の信号定義情報記憶手段44は、実行対象のプログラムが扱う信号を定義する。第1のPLC1、第2のPLC6及び第3のPLC7の各々では、情報端末装置4からの信号はメモリに格納される。
 以下の式(1)は、実施の形態1におけるプログラムコードの例を示す式である。
   DB1.INSERT(TB1,ID=1234,COUNT=TAG300);・・・(1)
 式(1)は、ある設備が生産した商品の識別番号を示すIDが「1234」であり、その商品の個数が「TAG300」であって、その個数をデータベースDB1のテーブルTB1に生産実績として格納することを意味している。テーブルTB1には、2つのフィールドが設けられており、一つ目のフィールドは商品の識別番号を示すIDのフィールドであり、二つ目のフィールドは商品の生産個数を示すCOUNTのフィールドである。式(1)のプログラムコードでは、データベースに関する信号はDB1及びTB1であり、センサに関する信号はTAG300である。
 ステップS2において、情報端末装置4の信号定義情報記憶手段44は、信号を取得する先を登録する。信号を取得する先は接続先であり、接続先の一例はセンサ又はデータベースである。つまり、接続先は、PLC又は外部データベース90のテーブルのフィールドである。例えば、設備Xに設けられた生産台数を計測するためのリミットセンサが第1のPLC1に接続されており、リミットセンサの計測値である個数の値がアドレスD3000に格納されている場合、接続先は、図4に示す通り第1のPLC1である。
 図4は、実施の形態1における信号登録情報の格納例を示す図である。図4では、信号の意味を示す信号名称と、信号を識別するためのIDと、信号に割りあてられているアドレスと、信号の値の取得先である接続先とが属性として定義されている。上記のアドレスは、データベースではフィールドに置き換えられる。図4は、上記のリミットセンサについては、信号名称は「設備X 生産台数」であり、信号をシステム内で識別するためのIDは「TAG300」であり、その値は第1のPLC1のアドレスD3000を参照することによって得られるということを示している。
 IDが「TAG200」である信号は、設備Xが故障したことを示す信号であって、第2のPLC6のアドレスD2000を読み出すことによってIDが「TAG200」である信号の内容を取得することができる。図4は、IDが「TAG400」である信号については、その信号が工程1の運転時間を示す信号であって、その信号の内容は外部のデータベースDB1のテーブルTB1のRunTimeというフィールドに格納されていることを示している。
 図3のステップS3において、情報端末装置4の信号定義情報記憶手段44は、保守端末装置5の設計ツール51を使ってプログラムコード14の内容をプログラム情報記憶手段43に記述する。この場合、信号登録情報に登録された信号IDが使用される。
 ステップS4において、保守端末装置5の設計ツール51は、プログラムコード14をプログラム情報記憶手段43に登録する。この場合、設計ツール51は、どのプログラムがどの信号をどのように操作するのかを示す関連情報をプログラム情報記憶手段43に登録する。操作の一例は、抽出又は挿入である。実施の形態1では、抽出はSELECTと表現され、挿入はINSERTと表現される。プログラム情報記憶手段43に登録されるプログラム情報は、プログラムの属性を示している。プログラム名又はプログラムの識別情報を指定することで、プログラムがどのPLCのメモリアドレスで使用されるのかということ、又は、プログラムがどのデータベースのテーブルのフィールドをどのように操作するのかということがわかる。
 図5は、実施の形態1におけるプログラム情報の格納例を示す図である。図5は、例えば、プログラムJOBαが信号TAG007の値をデータベースから読み出して信号TAG300に書き込むことを示している。図4に示す通り、信号TAG007は生産指示であり、信号TAG007の値は、データベースDB1のテーブルTB1のフィールドのOrderの部分を読み出すことによって得られる。書き込み先の信号は信号TAG300であって、図4に示す通り信号TAG300は設備Xの生産台数を示しているので、信号TAG007の値は第1のPLC1のアドレスD3000に書き込まれる。
 図3のステップS5において、すべてのプログラムについて登録が完了した場合(ステップS5でYes)、プログラムの登録は終了する。すべてのプログラムについて登録が完了していない場合(ステップS5でNo)、処理はステップS3に移行する。
 (手順2:PLCを選択してプログラムを実行)
 図6は、複数のPLCのなかからいずれかひとつのPLCを選択してプログラムの実行を指示する手順を示すフローチャートである。ステップS101において、情報端末装置4の実行時間予測手段45は、プログラム情報記憶手段43から登録されているプログラムを読み出す。
 ステップS102において、情報端末装置4の実行時間予測手段45は現在実行されているプログラムの実行終了までにかかる予測時間を取得し、予測時間が0である場合、PLC選択手段46は情報端末装置4に現在接続されているPLCの実行スケジュール15から実行終了予定時刻の一番早いPLCを選択する。予測時間が0でない場合、PLC選択手段46は、PLCの実行終了予定時刻に予測時間を加えて一番小さくなるPLCを選択する。例えば、予測時間が40秒であって、第1のPLC1において現在実行されているプログラムが20秒後に終了する予定であり、第2のPLC6において現在実行されているプログラムが10秒後に終了する予定であり、第3のPLC7において現在実行されているプログラムが80秒後に終了する予定である場合、PLC選択手段46は、第2のPLC6を選択し、実行スケジュール15に40を加えて実行終了予定時刻を更新する。
 ステップS103において、情報端末装置4のプログラム配信手段47は、PLC選択手段46が選択したPLCにプログラムを配信する。配信は、汎用プロトコルにしたがって行われる。汎用プロトコルの一例は、HTTP/FTP(Hypertext Transfer Protocol/ File Transfer Protocol)である。
 配信されたプログラムは、情報端末装置4のプログラム共通実行手段48によって、どのPLCにおいても実行されるように制御される。配信されたプログラムがどのPLCにおいても実行されることを、図7を用いて詳しく説明する。図7は、実施の形態1におけるプログラムの同期を説明するための図である。第1のセンサ17と第2のセンサ18とを取り扱うためのプログラムは、第1のPLC1、第2のPLC6及び第3のPLC7において実行される。第1のセンサ17からの信号は第1のPLC1に設けられたI/O端子ユニット16の2番目の端子に入力され、第2のセンサ18からの信号はI/O端子ユニット16の5番目の端子に入力される。第1のPLC1に入力された信号の値は、第1のPLC1のCPUにより第1のPLC1のローカルメモリ21の1番目のアドレスと5番目のアドレスとに書き込まれる。
 第2のPLC6のローカルメモリのアドレスの構成は第1のPLC1のローカルメモリのアドレスの構成と同じであるが、第2のPLC6はI/O端子ユニット16を有していないので、第2のPLC6のローカルメモリには、第1のセンサ17及び第2のセンサ18によって計測された値は書き込まれない。しかしながら、第1のPLC1、第2のPLC6及び第3のPLC7はサイクリックメモリを制御ネットワーク2において有する。サイクリックメモリは、第1のPLC1、第2のPLC6及び第3のPLC7の共通メモリである。
 サイクリックメモリは、第1のPLC1、第2のPLC6及び第3のPLC7の各々のエリアを有する。つまり、第1のPLC1に対応する第1のサイクリックメモリ19と、第2のPLC6に対応する第2のサイクリックメモリ61と、第3のPLC7に対応する第3のサイクリックメモリ71とが存在する。データが第1のサイクリックメモリ19の第1のPLC1の領域に書き込まれると、そのデータは第2のサイクリックメモリ61の第1のPLC1の領域にコピーされる。同様に、そのデータは第3のサイクリックメモリ71の第1のPLC1の領域にコピーされる。
 第1のセンサ17の計測値が第1のPLC1のメモリ10に書き込まれている場合、その値を第1のサイクリックメモリ19のいずれかのアドレスに書き込む処理と、その値を第2のPLC6の第2のサイクリックメモリ61のいずれかのアドレスから第2のPLC6のメモリに書き込む処理とが実行される。第1のPLC1、第2のPLC6及び第3のPLC7がサイクリックメモリを共有しているので、プログラムでは値は第1のPLC1のメモリ10に書き込まれることになっていても、どのPLCにおいてもプログラムは実行可能になる。情報端末装置4のプログラム共通実行手段48は、上述の処理を実行させるので、プログラムが第1のPLC1に配信されても、配信されたプログラムは第2のPLC6及び第3のPLC7において実行可能となる。
 図6のステップS104において、第1のPLC1はプログラムを実行する。第1のPLC1は、プログラムを実行する前にプログラムを識別するプログラムIDとプログラムの実行開始時刻とを実行実績記録手段12に記憶する。第1のPLC1は、プログラムの実行終了後にプログラムIDのエントリを検出し、図8に示すように、実行スケジュール15に実行終了時刻を記憶すると共に経過時間を記録する。図8は、実施の形態1におけるプログラム実行記録の格納例を示す図である。図8は、プログラムJOBαの実行が2015年6月30日11時30分30.5秒に開始し、2015年6月30日11時30分35.0秒に終了したことを示している。経過時間は、4.5秒である。
 図6のステップS105において、実行時間予測手段45は、プログラムの実行時間の実績とプログラム情報に含まれるプログラムの属性との因果関係を分析して実行時間を予測する。図9は、実施の形態1におけるプログラム実行時間予測処理に関する図である。図9に示すように、プログラム実行時間は、接続しているデータベースの個数、レコードの個数及びフィールドの個数に比例する。
 実行時間予測手段45は、外的因子と実行時関との関係を統計的に分析する。例えば、実行時間予測手段45は、特定のPLCのメモリからのデータの読み出しにかかる時間を分析する。実行時間予測手段45は、分析の結果から導かれる因果関係をもとに予測時間の定式化を行う。定式化は、言い換えるとモデル化である。モデル化には、広く知られている方法が用いられる。広く知られている方法の一例は、最小二乗法である。
 例えば、プログラムの実行時間Tiが下記の式(2)のようにモデル化されたと仮定する。
   Ti=1.5×(通信するデータベース数)×1000+2.2×(テーブルの列数)・・・(2)
 データベース数が2でテーブルの列数が1000である場合、式(2)を用いることにより、プログラム実行時間が5200msであると予測することができる。このとき、実行スケジュール15の実行終了時刻のフィールドには、現在時刻にTiを加えた値が記録される。経過時間のフィールドには0が記録され、それにより、予測時間と実績との区別を行うことができる。すべてのプログラムの実行が終了していれば処理は終了し(S106でYes)、すべてのプログラムの実行が終了していなければ(S106でNo)、処理はステップS101に移行する。
 次に、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置の詳細について説明する。図10は、実施の形態1の負荷分散装置を説明するための図である。上述の通り、実施の形態1では、負荷分散装置は情報端末装置4である。図10では、説明を簡単に行うために、情報端末装置4が有する複数の構成要素のうちの負荷分散処理手段49のみが示されている。実施の形態1では、上述の通り、制御装置はPLCである。すなわち、実施の形態1では、複数の制御装置は、第1のPLC1、第2のPLC6及び第3のPLC7である。
 実施の形態1では、複数の実行対象のプログラム及び実行時間について、以下の状況を想定する。すなわち、複数の実行対象のプログラムは、プログラムA1、プログラムA2、プログラムA3、プログラムB1、プログラムB2、プログラムB3、プログラムC1、プログラムC2及びプログラムC3の9個のプログラムである。プログラムA1、プログラムA2及びプログラムA3は、種類Aのプログラムである。プログラムB1、プログラムB2及びプログラムB3は、種類Bのプログラムである。プログラムC1、プログラムC2及びプログラムC3は、種類Cのプログラムである。例えば、種類Aのプログラムは切削に関するプログラムであり、種類Bのプログラムは加工に関するプログラムであり、種類Cのプログラムは組み立てに関するプログラムである。
 実施の形態1では、種類Aのプログラムの実行時間は、実行時間aである。つまり、プログラムA1、プログラムA2及びプログラムA3のいずれの実行時間も実行時間aである。種類Bのプログラムの実行時間は、実行時間bである。つまり、プログラムB1、プログラムB2及びプログラムB3のいずれの実行時間も実行時間bである。実行時間bは、実行時間aより短い。種類Cのプログラムの実行時間は、実行時間cである。つまり、プログラムC1、プログラムC2及びプログラムC3のいずれの実行時間も実行時間cである。実行時間cは、実行時間aより長い。実行時間aと実行時間bとの合計は実行時間cと同じである。
 図10に示す通り、情報端末装置4の負荷分散処理手段49は、特定手段91と、取得手段92と、組み合わせ手段93と、予測手段94と、算出手段95と、選択手段96と、制御手段97と、負荷検出手段98と、判断手段99と、時間検出手段79と、記憶手段78とを有する。
 特定手段91は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する。具体的には、特定手段91は、複数の実行対象のプログラムのうちのプログラムA1、プログラムA2及びプログラムA3は種類Aのプログラムであると特定する。特定手段91は、複数の実行対象のプログラムのうちのプログラムB1、プログラムB2及びプログラムB3は種類Bのプログラムであると特定する。特定手段91は、複数の実行対象のプログラムのうちのプログラムC1、プログラムC2及びプログラムC3は種類Cのプログラムであると特定する。
 取得手段92は、複数の種類のプログラムの各々の実行時間の情報を取得する。具体的には、取得手段92は、種類Aのプログラムの実行時間は実行時間aであり、種類Bのプログラムの実行時間は実行時間aより短い実行時間bであって、種類Cのプログラムの実行時間は実行時間aより長い実行時間cであることを示す情報を取得する。上述の通り、実施の形態1では、実行時間aと実行時間bとの合計は実行時間cと同じであるので、取得手段92は、実行時間aと実行時間bとの合計は実行時間cと同じであることを示す情報も取得する。
 組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。組み合わせ手段93は、第1のPLC1、第2のPLC6及び第3のPLC7のいずれかひとつに、又は第1のPLC1、第2のPLC6及び第3のPLC7のうちの任意の二つにもしくは全部に、実行時間が異なる少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
 図11を用いて、組み合わせ手段93が作成する複数の組み合わせを説明する。図11は、図10の組み合わせ手段93が作成する組み合わせの例を示す図である。組み合わせ手段93は、図11(A)から図11(E)に示す5個の組み合わせを含む複数の組み合わせを作成する。具体的には、組み合わせ手段93は、図11(A)に示す通り、プログラムA1、プログラムB1及びプログラムC1が第1のPLC1に割り当てられ、プログラムA2、プログラムB2及びプログラムC2が第2のPLC6に割り当てられ、プログラムA3、プログラムB3及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。図11では、「1-PLC」は第1のPLC1を意味し、「2-PLC」は第2のPLC6を意味し、「3-PLC」は第3のPLC7を意味している。
 加えて、組み合わせ手段93は、図11(B)に示す通り、プログラムA1、プログラムB2及びプログラムC2が第1のPLC1に割り当てられ、プログラムB1、プログラムA2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1、プログラムB3及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
 さらに、組み合わせ手段93は、図11(C)に示す通り、プログラムA1、プログラムA2及びプログラムC3が第1のPLC1に割り当てられ、プログラムB1、プログラムC2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1、プログラムB2及びプログラムB3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
 さらにまた、組み合わせ手段93は、図11(D)に示す通り、プログラムA1、プログラムB2、プログラムA2及びプログラムB3が第1のPLC1に割り当てられ、プログラムB1、プログラムC2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
 さらにまた、組み合わせ手段93は、図11(E)に示す通り、プログラムA1、プログラムB1、プログラムC1、プログラムC2及びプログラムC3が第1のPLC1に割り当てられ、プログラムA2、プログラムA3、プログラムB2及びプログラムB3が第2のPLC6に割り当てられるというひとつの組み合わせを作成する。
 予測手段94は、組み合わせ手段93によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。具体的には、予測手段94は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段91によって得られた情報と取得手段92によって取得された情報とを用い、組み合わせ手段93によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。特定手段91によって得られた情報は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する情報である。取得手段92によって取得された情報は、複数の種類のプログラムの各々の実行時間の情報である。
 図11を用いて予測手段94の機能を更に説明する。図11は、上述の通り図10の組み合わせ手段93が作成する組み合わせの例を示す図であるが、組み合わせ手段93によって作成された複数の組み合わせの各々の全プログラム終了時間の予測結果を示す図でもある。全プログラム終了時間は、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間を意味する。
 図11(A)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の時間であって、実行時間a、実行時間b及び実行時間cの合計の時間である。第2のPLC6がプログラムA2、プログラムB2及びプログラムC2を実行する場合の実行時間も、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の実行時間と同じである。第3のPLC7がプログラムA3、プログラムB3及びプログラムC3を実行する場合の実行時間も、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の実行時間と同じである。
 図11(B)の組み合わせでは、全プログラム終了時間は、第3のPLC7がプログラムC1、プログラムB3及びプログラムC3を実行する場合の時間であって、実行時間bと実行時間cの2倍との合計の時間である。図11(C)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムA2及びプログラムC3を実行する場合の時間であって、実行時間aの2倍と実行時間cとの合計の時間である。
 図11(D)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB2、プログラムA2及びプログラムB3を実行する場合の時間であって、実行時間aの2倍と実行時間bの2倍との合計の時間である。上述の通り、実行時間aと実行時間bとの合計は実行時間cと同じなので、図11(D)の組み合わせでは、全プログラム終了時間は、第2のPLC6がプログラムB1、プログラムC2及びプログラムA3を実行する場合の時間であって、実行時間b、実行時間c及び実行時間aの合計の時間でもある。図11(D)の組み合わせでは、全プログラム終了時間は、第3のPLC7がプログラムC1及びプログラムC3を実行する場合の時間であって、実行時間cの2倍の時間でもある。更に言うと、図11(D)の組み合わせでの全プログラム終了時間は、図11(A)の組み合わせでの全プログラム終了時間と同一である。
 図11(E)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB1、プログラムC1、プログラムC2及びプログラムC3を実行する場合の時間であって、実行時間aと、実行時間bと、実行時間cの3倍との合計の時間である。
 算出手段95は、組み合わせ手段93によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である基準時間を算出する。具体的には、算出手段95は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段91によって得られた情報と取得手段92によって取得された情報とを用い、複数の実行対象のプログラムのうちの同一の種類のプログラムを複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のうちの同一のPLCに割り当てると共に複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のうちの互いに異なるPLCの各々に割り当てた場合に複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。
 図11を用いて算出手段95の機能を更に説明する。図11は、上述の通り図10の組み合わせ手段93が作成する組み合わせの例を示す図であるが、算出手段95によって算出される基準時間を示す図でもある。図11(F)に示す通り、第1のPLC1がプログラムA1、プログラムA2及びプログラムA3を実行し、第2のPLC6がプログラムB1、プログラムB2及びプログラムB3を実行し、第3のPLC7がプログラムC1、プログラムC2及びプログラムC3を実行する場合を想定する。算出手段95は、図11(F)に示される組み合わせにおいて、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。算出手段95によって算出する基準時間は、図11(F)から理解できる通り、実行時間cの3倍の時間である。
 図11(G)は、第1のPLC1に、プログラムA1、プログラムB1、プログラムC1、プログラムA2、プログラムB2、プログラムC2、プログラムA3、プログラムB3及びプログラムC3の9個のプログラムが割り当てられる組み合わせを示している。
 選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。上述の通り、基準時間は、組み合わせ手段93によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である。例えば、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が最も短い組み合わせを選択する。図11の例では、図11(A)又は図11(D)の組み合わせでの全プログラム終了時間が最も短いので、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、図11(A)又は図11(D)の組み合わせを選択する。
 選択手段96が、いずれかひとつのPLCに同じ種類の複数のプログラムが割り当てられている組み合わせを選択しないという規則を有している場合、図11(A)の組み合わせでの全プログラム終了時間と図11(D)の組み合わせでの全プログラム終了時間とは等しいが、選択手段96は、図11(A)の組み合わせを選択する。なぜなら、図11(D)の組み合わせでは、第3のPLC7にプログラムC1及びプログラムC3という同じ種類の複数のプログラムが割り当てられているからである。
 上述の通り、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間である組み合わせのひとつを選択する。図11(B)の組み合わせの全プログラム終了時間も図11(C)の組み合わせの全プログラム終了時間も、基準時間より短い。そのため、選択手段96は、図11(B)の組み合わせ又は図11(C)の組み合わせを選択してもよい。いずれにしても、選択手段96は、複数の組み合わせのなかから、全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する。したがって、負荷分散装置である情報端末装置4を用いれば、複数の実行対象のプログラムを複数の制御装置に実行させる場合、全プログラム終了時間をより短くすることができるという効果が得られる。
 制御手段97は、選択手段96によって選択された組み合わせにしたがって、複数の実行対象のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てて、複数の実行対象のプログラムを第1のPLC1、第2のPLC6及び第3のPLC7に実行させる。例えば、選択手段96によって選択された組み合わせが図11(A)の組み合わせである場合、制御手段97は、プログラムA1、プログラムB1及びプログラムC1を第1のPLC1に割り当てて実行させ、プログラムA2、プログラムB2及びプログラムC2を第2のPLC6に割り当てて実行させ、プログラムA3、プログラムB3及びプログラムC3を第3のPLC7に割り当てて実行させる。
 負荷検出手段98は、第1のPLC1の負荷を検出する。第1のPLC1は、複数の制御装置のうちの特定の制御装置の一例である。判断手段99は、負荷検出手段98によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する。負荷検出手段98によって検出された負荷が上記の閾値以上であると判断手段99によって判断された場合、特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96及び制御手段97は、各々が有する機能を実行する。なお、特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96及び制御手段97は、負荷検出手段98によって検出された負荷が上記の閾値以上であると判断手段99によって判断された場合以外の場合においても、各々が有する機能を実行してもよい。
 時間検出手段79は、複数の実行対象のプログラムの各々の実際の実行時間を検出する。記憶手段78は、時間検出手段79によって得られた情報を記憶する。取得手段92は、記憶手段78から複数の種類のプログラムの各々の実行時間の情報を取得してもよい。
 具体的には、記憶手段78は過去に実行された複数の実行対象のプログラムの各々の実際の実行時間を記憶している。取得手段92は、同一の種類のプログラムについての実行時間は過去の実行時間と同一であると推定し、記憶手段78に記憶されている情報から、複数の種類のプログラムの各々の実行時間の情報を取得する。更に詳細には、記憶手段78が種類Aのプログラムの過去の実行時間を記憶している場合を想定する。取得手段92は、未来に実行される種類Aのプログラムの実行時間は記憶手段78に記憶されている種類Aのプログラムの過去の実行時間と同一であると判断し、種類AのプログラムであるプログラムA1、プログラムA2及びプログラムA3の各々の実行時間の情報として記憶手段78に記憶されている種類Aのプログラムの過去の実行時間の情報を取得してもよい。
 上述の通り、実施の形態1の情報端末装置4は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。情報端末装置4は、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。そして、情報端末装置4は、作成された複数の組み合わせのなかから、予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。これにより、情報端末装置4は、全プログラム終了時間をより短くすることができる。情報端末装置4の選択手段96が作成された複数の組み合わせのなかから全プログラム終了時間が最も短い組み合わせを選択する場合、情報端末装置4は、全プログラム終了時間を最も短くすることができる。
 なお、上述の実施の形態1では、組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。言い換えると、組み合わせ手段93は、複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
 実行時間が相反する二つの実行対象のプログラムは、複数の実行対象のプログラムの各々を実行時間が長い順に並べた場合、複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと、第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである。第1の順位は最上位より下位の順位であり、第2の順位は最下位より上位の順位である。
 図11(F)の組み合わせでは、第1のPLC1に種類Aのプログラムのみが割り当てられており、第2のPLC6に種類Bのプログラムのみが割り当てられており、第3のPLC7に種類Cのプログラムのみが割り当てられている。つまり、図11(F)の組み合わせでは、第1のPLC1、第2のPLC6及び第3のPLC7のいずれにおいても、実行時間が相反する二つの実行対象のプログラムは割り当てられていない。そのため、複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成するという規則が設けられている場合、組み合わせ手段93は、図11(F)の組み合わせを作成しない。
 実行時間が相反する二つの実行対象のプログラムの一例は、複数の実行対象のプログラムのうちの、実行時間が最も長いプログラムのひとつと実行時間が最も短いプログラムのひとつとである。実施の形態1では、実行時間が相反する二つの実行対象のプログラムの一例は、種類Bのプログラムのひとつと種類Cのプログラムのひとつとである。
 上述した実施の形態1では、基準時間は算出手段95によって算出される。しかしながら、基準時間は、算出手段95によって算出されず、あらかじめ決められたものであってもよい。基準時間があらかじめ決められたものである場合、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間があらかじめ決められた基準時間より短い時間であるひとつの組み合わせを選択する。基準時間を適切に設定すれば、情報端末装置4は全プログラム終了時間をより短くすることができる。
 上述の実施の形態1では、組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。しかしながら、組み合わせ手段93は、複数の実行対象のプログラムのうちの実行時間が相反する少なくとも二つの実行対象のプログラムが複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに割り当てられるひとつの組み合わせだけを作成してもよい。その場合、制御手段97は、組み合わせ手段93によって作成された組み合わせにしたがって、複数の実行対象のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てて、複数の実行対象のプログラムを第1のPLC1、第2のPLC6及び第3のPLC7に実行させる。この場合でも、全プログラム終了時間がより短くなる。実行時間が相反する二つの実行対象のプログラムについては、上述したのでここでの説明は省略する。
 上述した実施の形態1では、複数の制御装置の一例は、第1のPLC1、第2のPLC6及び第3のPLC7である。しかしながら、複数の制御装置は、第1のPLC1、第2のPLC6及び第3のPLC7の3個のPLCに限定されない。複数の制御装置は、第1のPLC1及び第2のPLC6の2個のPLCであってもよいし、4個以上のPLCであってもよい。複数の制御装置の個数は、例えば複数個のPLCがある製品を生産する状況において使用される場合の生産コストによって決められる。
 情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の機能の一部又は全部は、処理回路77によって実現されてもよい。図12は、図10の情報端末装置4を構成する少なくとも一部の手段が処理回路77であることを示す図である。処理回路77は、専用のハードウェアである。すなわち、処理回路77は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の一部は、残部とは別個の専用のハードウェアであってもよい。
 情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の一部又は全部は、メモリ76に格納されるプログラムを実行するプロセッサ75であってもよい。図13は、図10の情報端末装置4を構成する少なくとも一部の手段がプロセッサ75であることを示す図である。プロセッサ75は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)である。
 情報端末装置4を構成する少なくとも一部の手段がプロセッサ75である場合、情報端末装置4を構成する少なくとも一部の手段の機能は、プロセッサ75と、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ76に格納される。プロセッサ75は、メモリ76に記憶されたプログラムを読み出して実行することにより、情報端末装置4を構成する一部の手段の機能を実現する。
 すなわち、情報端末装置4を構成する一部の手段がプロセッサ75である場合、情報端末装置4は、情報端末装置4を構成する一部の手段によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ76を有する。メモリ76に格納されるプログラムは、情報端末装置4を構成する一部の手段の手順又は方法をコンピュータに実行させるものであるともいえる。メモリ76は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の、不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はDVD等である。
 情報端末装置4を構成する複数の手段の機能について、一部を専用のハードウェアで実現し、残部をソフトウェア又はファームウェアで実現してもよい。このように、情報端末装置4を構成する複数の手段は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、情報端末装置4を構成する複数の手段の機能を実現することができる。
 以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
 1 第1のPLC、4 情報端末装置、6 第2のPLC、7 第3のPLC、49 負荷分散処理手段、78 記憶手段、79 時間検出手段、91 特定手段、92 取得手段、93 組み合わせ手段、94 予測手段、95 算出手段、96 選択手段、97 制御手段、98 負荷検出手段、99 判断手段。

Claims (17)

  1.  複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
     前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
     前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
     前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、
     同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、
     前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、
     前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と
     を備えることを特徴とする負荷分散装置。
  2.  同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段を更に備え、
     前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択する
     ことを特徴とする請求項1に記載の負荷分散装置。
  3.  前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が異なる二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する
     ことを特徴とする請求項1又は2に記載の負荷分散装置。
  4.  前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が相反する二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成し、
     前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと、前記第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである
     ことを特徴とする請求項1又は2に記載の負荷分散装置。
  5.  前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
     ことを特徴とする請求項4に記載の負荷分散装置。
  6.  前記複数の制御装置のうちの特定の制御装置の負荷を検出する負荷検出手段と、
     前記負荷検出手段によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する判断手段とを更に備え、
     前記負荷検出手段によって検出された負荷が前記閾値以上であると前記判断手段によって判断された場合、前記特定手段、前記取得手段、前記組み合わせ手段、前記予測手段、前記選択手段及び前記制御手段は、各々が有する機能を実行する
     ことを特徴とする請求項1から5のいずれか1項に記載の負荷分散装置。
  7.  前記複数の実行対象のプログラムの各々の実際の実行時間を検出する時間検出手段と、
     前記時間検出手段によって得られた情報を記憶する記憶手段とを更に備え、
     前記取得手段は、前記記憶手段から前記複数の種類のプログラムの各々の実行時間の情報を取得する
     ことを特徴とする請求項1から6のいずれか1項に記載の負荷分散装置。
  8.  前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が最も短い組み合わせを選択する
     ことを特徴とする請求項1から7のいずれか1項に記載の負荷分散装置。
  9.  複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
     前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
     前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
     前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てる場合のひとつの組み合わせであって、前記複数の実行対象のプログラムのうちの前記実行時間が相反する二つの前記実行対象のプログラムが前記複数の制御装置の少なくともひとつに割り当てられる前記ひとつの組み合わせを作成する組み合わせ手段と、
     前記組み合わせ手段によって作成された前記ひとつの組み合わせにしたがって、前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備え、
     前記組み合わせ手段は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用いて前記ひとつの組み合わせを作成する
     ことを特徴とする負荷分散装置。
  10.  前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと前記第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである
     ことを特徴とする請求項9に記載の負荷分散装置。
  11.  前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
     ことを特徴とする請求項10に記載の負荷分散装置。
  12.  プログラムを実行する複数の制御装置を管理する負荷分散装置において、
     前記制御装置で実行する複数のプログラムの実行時間をプログラム毎に算出する実行時間算出部と、
     前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
    を備え、
     プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示する
     ことを特徴とする負荷分散装置。
  13.  前記実行時間算定部は、複数のプログラムの実行時間をプログラム毎に記録することにより行い、
     前記実行時間は、前記プログラムの実行処理の全プログラム終了時間を含む
     ことを特徴とする請求項12に記載の負荷分散装置。
  14.  前記プログラムの実行は、制御装置に記録されたプログラムを前記プログラム実行指示部からの指示に基づいて実行することを特徴とする請求項12又は13に記載の負荷分散装置。
  15.  前記プログラムの実行は、前記プログラム実行指示部から前記制御装置に配信されたプログラムを実行することで行われることを特徴とする請求項12又は13に記載の負荷分散装置。
  16.  前記制御装置におけるプログラムの実行負荷が増大したことを検出した後、前記プログラム実行指示部が機能することを特徴とする請求項12から15のいずれか1項に記載の負荷分散装置。
  17.  プログラムを実行する複数の制御装置を管理する負荷分散装置おいて、
     制御装置で実行する複数のプログラムの実行予想時間をプログラム毎に記録する実行予想時間記録部と、
     前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
    を備え、
     前記プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示し、
     前記実行予想時間は、前記プログラムの実行処理の全プログラム終了時間を含む
     ことを特徴とする負荷分散装置。
PCT/JP2016/054338 2016-02-15 2016-02-15 負荷分散装置 WO2017141332A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2016/054338 WO2017141332A1 (ja) 2016-02-15 2016-02-15 負荷分散装置
JP2016574030A JP6150956B1 (ja) 2016-02-15 2016-02-15 負荷分散装置
US15/532,354 US20180095441A1 (en) 2016-02-15 2016-02-15 Load distribution device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/054338 WO2017141332A1 (ja) 2016-02-15 2016-02-15 負荷分散装置

Publications (1)

Publication Number Publication Date
WO2017141332A1 true WO2017141332A1 (ja) 2017-08-24

Family

ID=59082062

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/054338 WO2017141332A1 (ja) 2016-02-15 2016-02-15 負荷分散装置

Country Status (3)

Country Link
US (1) US20180095441A1 (ja)
JP (1) JP6150956B1 (ja)
WO (1) WO2017141332A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210119528A (ko) 2019-03-22 2021-10-05 미쓰비시덴키 가부시키가이샤 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3458918A4 (en) * 2016-05-20 2020-01-22 Georgia Tech Research Corporation SYSTEMS AND METHODS FOR DETECTING ABNORMAL SOFTWARE ON A PROGRAMMABLE CONTROLLER
EP3252549B1 (de) * 2016-05-31 2020-06-24 Siemens Aktiengesellschaft Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung
JP6356736B2 (ja) * 2016-06-29 2018-07-11 ファナック株式会社 コントローラシステムおよび制御方法
US11696528B2 (en) * 2019-10-11 2023-07-11 Deere & Company Settings propagation and synchronization across mobile work machines
US11899564B2 (en) * 2022-05-19 2024-02-13 Renesas Electronics Corporation Debug apparatus and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991011A (ja) * 1995-09-26 1997-04-04 Omron Corp 負荷分散装置および方法
JP2012059078A (ja) * 2010-09-09 2012-03-22 Fuji Electric Co Ltd Plcシステム、その開発支援装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100397760B1 (ko) * 1998-04-27 2003-09-13 가부시끼가이샤 디지탈 제어시스템, 표시장치 및 제어용 호스트 컴퓨터 및 데이터전송방법
JP2003337793A (ja) * 2002-03-15 2003-11-28 Omron Corp ネットワークシステム及びネットワークシステムの通信方法
JP4877423B1 (ja) * 2011-03-15 2012-02-15 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
US9389606B2 (en) * 2011-11-11 2016-07-12 Rockwell Automation Technologies, Inc. Agile control model system and method
JP6375666B2 (ja) * 2014-03-31 2018-08-22 株式会社ジェイテクト Plcおよびplc用のプログラミングツール
KR101627489B1 (ko) * 2014-04-25 2016-06-03 미쓰비시덴키 가부시키가이샤 기능 유닛, 아날로그 입력 유닛, 프로그래머블 컨트롤러 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991011A (ja) * 1995-09-26 1997-04-04 Omron Corp 負荷分散装置および方法
JP2012059078A (ja) * 2010-09-09 2012-03-22 Fuji Electric Co Ltd Plcシステム、その開発支援装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210119528A (ko) 2019-03-22 2021-10-05 미쓰비시덴키 가부시키가이샤 정보 처리 장치, 정보 처리 방법 및 기록 매체에 저장된 정보 처리 프로그램
DE112019006890T5 (de) 2019-03-22 2021-11-18 Mitsubishi Electric Corporation Informationsverarbeitungsvorrichtung, Computer, Computersystem, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm

Also Published As

Publication number Publication date
JP6150956B1 (ja) 2017-06-21
US20180095441A1 (en) 2018-04-05
JPWO2017141332A1 (ja) 2018-02-22

Similar Documents

Publication Publication Date Title
JP6150956B1 (ja) 負荷分散装置
Glock et al. Decision support models for production ramp-up: a systematic literature review
Cannella et al. Metrics for bullwhip effect analysis
Sürie et al. Supply chain analysis
US9733627B2 (en) Cloud computing system and method for advanced process control
JP6622592B2 (ja) 生産計画立案支援システムおよび支援方法
JP5779537B2 (ja) 生産シミュレーション装置、生産シミュレーション方法及び、生産シミュレーションプログラム
Barkokebas et al. Assessment of digital twins to reassign multiskilled workers in offsite construction based on lean thinking
JP5478545B2 (ja) 作業者配置支援装置
JP2013131259A (ja) 統合需要予測装置、統合需要予測方法、及び統合需要予測プログラム
JP2014225068A (ja) 生産指標抽出装置及びプログラム
Windheim et al. Towards a decision-making framework for multi-criteria product modularization in cooperative environments
US20200193337A1 (en) Process estimation apparatus and method
Pinho et al. Forest-based supply chain modelling using the SimPy simulation framework
Olender et al. Practical approach of flexible job shop scheduling using costs and finishing times of operations
JP6151435B2 (ja) 倉庫収益シミュレーション装置
Pfeiffer et al. Simulation as one of the core technologies for digital enterprises: assessment of hybrid rescheduling methods
KR102096595B1 (ko) 모니터 지원 장치, 모니터 지원 방법 및 모니터 지원 프로그램
US20110010689A1 (en) System for Writing a Simulation Program
JP7039232B2 (ja) 技術情報共有システム及び技術情報共有方法
Bruetzel et al. Automated Production Network Planning Under Uncertainty by Developing Representative Demand Scenarios
Duffie Control Theory Applications for Dynamic Production Systems: Time and Frequency Methods for Analysis and Design
JP2020190980A (ja) 劣化推定装置、劣化推定システム、劣化推定方法および劣化推定プログラム
CN108111573A (zh) 控制服务器
Joseph et al. Development of simulation-based metamodels for the analysis of routing flexibility, sequencing flexibility and scheduling decision rules on the performance of an FMS

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016574030

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15532354

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16890475

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16890475

Country of ref document: EP

Kind code of ref document: A1