WO2021002059A1 - 制御システム、設定装置およびコンピュータプログラム - Google Patents
制御システム、設定装置およびコンピュータプログラム Download PDFInfo
- Publication number
- WO2021002059A1 WO2021002059A1 PCT/JP2020/010343 JP2020010343W WO2021002059A1 WO 2021002059 A1 WO2021002059 A1 WO 2021002059A1 JP 2020010343 W JP2020010343 W JP 2020010343W WO 2021002059 A1 WO2021002059 A1 WO 2021002059A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- program
- devices
- upg
- control program
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13063—Synchronization between modules
Definitions
- This disclosure relates to a control system, a setting device, and a computer program that control an object.
- FA Vectory Automation
- PLCs programmable logic controllers
- the PLC executes a control program of a controlled object such as a field device including a robot.
- the scale of the FA system has tended to increase, and the PLC provided in the FA system has increased accordingly.
- Patent Document 1 discloses a programmable controller that performs cyclic communication with another programmable controller via a communication device.
- the present disclosure is to provide a control system, a setting device and a program capable of meeting the above needs.
- the control system is a control system including a control target connected to a network and a plurality of devices, and is stored in each device for storing a control program for calculating control data using data exchanged with the control target.
- a program storage means provided, an execution means provided in each device for causing a processor to execute a plurality of programs including a control program to be arranged, and a plurality of control programs are arranged in one or more of the plurality of devices.
- the arrangement means is provided from among a plurality of devices based on the communication delay time between each device and the information of the resources available for executing the control program of each device for each control program. Determine the device to which the control program is placed.
- the communication delay time between the devices and the resources available for executing the control program of each device is determined. Based on the information in, it is possible to determine the device to which the control program is to be placed from among a plurality of devices.
- the resource information that can be used to execute the control program of each device includes the size of the storage area that can be used to execute the control program in the program storage means.
- each control program among a plurality of devices, based on the communication delay time between the devices and the size of the storage area available for executing the control program in the program storage means of each device.
- the device on which the control program should be placed can be determined.
- the placement means asks each device for the size of the storage area that can be used to execute the control program.
- the placement means can receive from each device the size of the storage area that can be used to execute the control program by inquiring.
- the resource information that can be used to execute the control program of each device includes the time that the processor can use to execute the control program.
- the control program is arranged from among a plurality of devices based on the communication delay time between the devices and the time that the processor of each device can be used to execute the control program.
- the device to be used can be determined.
- the placement means queries each device for the time available to execute the control program by the processor.
- the placement means can receive from each device the time available for execution of the control program by the processor by inquiring.
- a means for measuring the communication delay time between devices is further provided. According to the above disclosure, the communication delay time between devices can be measured.
- the communication delay time between the devices includes the communication delay time required for the communication of the data exchanged with the controlled object.
- the said one of a plurality of devices is based on the communication delay time of the data used by the control program and the information of the resources available for executing the said control program of each device.
- the device on which the control program should be placed can be determined.
- the plurality of devices include an information processing device time-synchronized with each other and one or more control devices, and the execution means of the information processing device is controlled by using data received from each one or more control devices.
- the processor executes the program, and the execution means of each control device transfers the data exchanged with the control target to the information processing device, and causes the processor to output an input / output program that outputs the control data received from the information processing device to the control target.
- the control program and the input / output program to be executed are executed within the time based on the time synchronization and shared between each control device and the information processing device.
- the execution of the control program of the information processing device and the execution of the input / output program of the control device are coordinated within a shared time. It is possible to provide an environment for executing.
- the control device since the information processing device executes the control program arranged in the own device, the control device does not require the execution environment of the control program, so that the control device can be configured at low cost.
- a plurality of arrangement means are provided for each control program based on the communication delay time between the devices and the information of the resources available for executing the control program of each device for each failure mode of the control system.
- the device to which the control program is placed is determined from among the devices of.
- the arrangement means can redetermine the device to which the control program is arranged for each failure mode of the control system. That is, the arrangement means arranges the control program from among a plurality of devices based on the communication delay time between the devices acquired in the failure mode and the information of the resources that can be used to execute the control program of each device. The device to be used can be determined.
- the arrangement means determines the device to execute the control program from the devices for which the arrangement of the control program has been determined.
- the arrangement means can determine the device to execute the control program from the devices determined as the arrangement destination of the control program.
- the setting device is a setting device that performs settings for a control target connected to a network and a control system including a plurality of devices.
- Each device includes a program storage means for storing a control program that calculates control data using data exchanged with a control target, and an execution means for causing a processor to execute a plurality of programs including the control program.
- the setting device includes an arrangement means for arranging a plurality of control programs in one or more of the plurality of devices, and the arrangement means for each control program, the communication delay time between the devices and the control of each device. Based on the information of the resources that can be used to execute the program, the device in which the control program is placed is determined from among the plurality of devices.
- the communication delay time between the devices and the resources available for executing the control program of each device is determined. Based on the information in, it is possible to determine the device to which the control program is to be placed from among a plurality of devices.
- the computer program related to this disclosure is a program for implementing settings for a control target and a control system including a plurality of devices connected to a network.
- Each device includes a program storage means for storing a control program that calculates control data using data exchanged with a control target, and an execution means for causing a processor to execute a plurality of programs including the control program.
- the computer program tells the computer the step of acquiring the communication delay time between each device for each control program and the information of the resources available for executing the control program of each device, and for each control program, between each device. Based on the communication delay time of the above and the information of the resources available for executing the control program of each device, the step of determining the device to which the control program is arranged from among a plurality of devices is executed.
- the computer program when the control program is freely arranged among the plurality of devices, the computer program is executed, so that the communication delay time between the devices and the corresponding device of each device are obtained for each control program. Based on the information of the resources available for executing the control program, it is possible to determine the device in which the control program should be placed from among a plurality of devices.
- the control program when a control program is freely arranged among a plurality of devices in a control system, the control program can be used for the communication delay time between the devices and the execution of the control program of each device.
- the device to which the control program should be placed can be determined from a plurality of devices based on the information of various resources.
- FIG. 1 is a diagram schematically showing an example of the configuration of the control system 1 according to the present embodiment.
- the PLCs 100A, 100B, 100C and 100D which are examples of the “control device”
- the host device 600 which is an example of the “information processing device”.
- a plurality of field devices 90 which is an embodiment of the “controlled object”.
- the control device and the information processing device are examples of devices that execute a control program for controlling a controlled object.
- the PLCs 100A, 100B, 100C and 100D have similar functions, and when they are not distinguished, they are collectively referred to as the PLC100.
- the PLC 100 is connected to the host device 600 via a wired or wireless network 11.
- One or more field devices 90 are connected to the PLC 100 via a wired or wireless network 11.
- the control system 1 may be provided with a PLC 100 to which the field device 90 is not connected.
- the host device 600 is configured as a server in the control system 1, an external server such as a cloud server, a PLC having higher performance than the PLC 100, or an industrial computer (so-called IPC: Industrial Personal Computer). May be done.
- an external server such as a cloud server, a PLC having higher performance than the PLC 100, or an industrial computer (so-called IPC: Industrial Personal Computer). May be done.
- IPC Industrial Personal Computer
- a support device 500 composed of a general-purpose computer can be connected to the network 11.
- the support device 500 is an embodiment of a “setting device” that performs settings for the control system 1.
- the support device 500 is provided as a device independent of the PLC 100 and the host device 600, but the mode of provision is not limited thereto.
- the PLC 100 or the host device 600 may incorporate the function of the support device 500.
- the PLC 100 may be configured as an industrial computer such as an IPC.
- the support device 500 is a device that provides a support tool for supporting the preparation necessary for the PLC 100 to control the controlled object.
- the support tool is provided to the user by, for example, a UI (User Interface).
- the support device 500 sets the development environment (program creation / editing tool, parser, compiler, etc.) of the program executed by the PLC 100, and the parameters (configuration) of the PLC 100 and various devices connected to the PLC 100.
- the setting environment, the function of transmitting the generated user program to the PLC100, the function of modifying / changing the user program executed on the PLC100 online, and the like are provided.
- the user program generated by the support device 500 is provided to the PLC 100 or the host device 600 by being transferred to the PLC 100 or the host device 600 via the network 11 or transferred via a recording medium.
- Such a user program includes a control program having a control operation instruction code for controlling the control target, and the operation instruction includes an instruction for calculating control data using data exchanged with the control object.
- the user program is arbitrarily created according to the control target, and includes a sequence program and the like described using the language defined in IEC61131-3.
- the user program including the control program is referred to as UPG (User Program) 69.
- Various field devices 90 such as sensors and actuators are connected to the PLC 100. These field devices 90 may be directly connected to the PLC 100 via an input / output unit mounted on the PLC 100, or may be connected to the PLC 100 via a network 11 on the field side.
- Each of the field devices 90 is an actuator that exerts some physical action on a manufacturing device, a production line, or the like (hereinafter, also collectively referred to as a “field”), an input / output device that exchanges information with the field, and the like. including.
- the field device 90 includes a device that collects field values including the state of a controlled object or a manufacturing device or a production line related to control in the field as input data.
- An input relay, various sensors, or the like is assumed as a device for collecting such field values.
- the field device 90 is also referred to as data (hereinafter, also referred to as “output data”) including control data including control commands (command values, control amounts, etc.) generated by the PLC 100, data calculated or updated by the control program, and the like. ), Including a device that exerts some action on the field.
- an output relay, a contactor, a servo driver and a servo motor, and any other actuator are assumed.
- These field devices 90 exchange (communicate) data including input data and output data with and from the PLC 100 via the network 11.
- each device can exchange various data including the above input data and output data with other devices at high speed.
- a protocol that enables high-speed data communication is applied to the network between the PLC 100 and the host device 600.
- the network 11 for example, a bus or a network that performs constant periodic communication in which the arrival time of data is guaranteed according to the TSN (Time-Sensitive Networking) standard can be adopted.
- the network 11 may employ a network related to a known protocol such as EtherNet / IP (registered trademark) as an upper layer protocol of TSN.
- EtherNet / IP is an industrial open network in which a control protocol is implemented on a general-purpose Ethernet (registered trademark).
- TSN a unified communication protocol for exchanging data between devices via the network 11
- Communication protocol conversion can be omitted, and data communication can be performed at higher speed. Therefore, it is possible to share data among all the devices for each control cycle.
- the data exchanged between the PLC 100 and the field device 90 via the network 11 is updated in a very short cycle of several hundred ⁇ sec order to several tens of msec order.
- the data update process of such exchanged data is realized by IO refresh 72.
- the PLC 100 periodically and repeatedly executes the IO refresh 72 and the UPG execution in synchronization with the control cycle.
- the IO refresh 72 is a process of periodically updating the input data and the output data with the field in synchronization with the control cycle.
- the IO refresh 72 since the value referred to by the UPG69 such as the control program is managed in the form of a variable, the IO refresh 72 periodically updates the value of the corresponding variable referred to by the UPG69. Means processing.
- Time synchronization is performed in control system 1. Specifically, the timer 101A of the PLC 100A, the timer 101B of the PLC 100B, the timer 101C of the PLC 100C, and the timer 101D of the PLC 100D are synchronized with the timer 601 of the grand master included in the host device 600. Further, in FIG. 1, each field device 90 of the field device group 3A connected to the PLC 100A is time-synchronized with the timer 101A of the PLC 100A. Further, each field device 90 of the field device group 3B connected to the PLC 100B synchronizes the time with the timer 101B of the PLC 100B.
- each field device 90 of the field device group 3C connected to the PLC 100C synchronizes the time with the timer 101C of the PLC 100C. Further, each field device 90 of the field device group 3D connected to the PLC 100D synchronizes the time with the timer 101D of the PLC 100D. As a result, the devices connected to the network 11 are time-synchronized with each other.
- the UPG69 can be freely arranged instead of arranging the UPG69 fixedly in the device as in the conventional case. It is possible to place it in.
- "UPG placement” means downloading the UPG 69 to the PLC 100 or the higher-level device 600
- "placement determination” means determining the device to which the UPG 69 is downloaded, more specifically. It means determining the optimum device.
- the support tool provided by the support device 500 includes a placement tool 630 that assists in placing a plurality of control programs (UPG69) on one or more of a plurality of devices including the PLC 100 and the host device 600.
- the placement tool 630 acquires, for the UPG69, the communication delay time 631 between the devices and the resource amount 632 indicating the resources that can be used to execute the UPG69 of each device in order to place the UPG69 in the optimum device. Based on the acquired information, the optimum device in which the UPG69 should be arranged is determined from among the plurality of devices.
- the "communication delay time” includes the time required for the control program to communicate the data exchanged with the controlled object. For example, it indicates the time required from the start of processing by the IO refresh 72 until the data corresponding to all the variables referenced by the UPG 69 is communicated with the field device 90 and the setting of the variables is completed.
- the placement tool 630 measures the communication delay time 631 for each UPG69.
- the resource amount 632 includes, for example, the size of "a storage area that can be used for executing UPG69", and this storage area is a storage that the program storage device (including the storage medium) included in the device has.
- a region which means a storage region that can be provided for the execution of UPG69.
- This type of storage area is a concept including the storage area of the main storage (internal storage, primary storage) device or auxiliary storage (external storage, secondary storage) device included in the device, but in the present embodiment, " The "storage area that can be used for executing UPG" corresponds to the storage area of the main storage device in which the instruction code of UPG69 is expanded when the processor executes UPG69.
- the storage area of the main memory the area excluding the storage area where other programs (system programs including OS (Operating System) and data) for executing UPG69 are deployed is the execution of UPG69 (UPG69). It becomes a storage area that can be used for expansion).
- the placement tool 630 uses the placement tool 630 for each UPG69 for each device.
- the storage area size 633 (hereinafter referred to as storage area size 633) that can be used for execution is measured.
- the placement tool 630 can determine the device to which the UPG69 is to be placed optimally based on the "communication delay time 631" and the amount of resources 632 that can be used to execute the UPG69 of each device. it can.
- FIG. 2 is a schematic view showing a configuration of a main part of the PLC 100 according to the present embodiment.
- the PLC 100 includes an arithmetic processing unit 110, a communication circuit 130, a DMA (Direct Memory Access) controller 140, a high-precision timer 160, a communication controller 107, communication ports 136 and 137 for connecting the network 11, and Includes memory card interface 108.
- the timer 160 corresponds to timers 101A, 101B, 101C and 101D.
- the arithmetic processing unit 110 includes a processor 112, a storage unit 114 which is an example of a main storage device, and a storage 119 which is an example of an auxiliary storage device.
- the main storage device is composed of a volatile storage device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory).
- the auxiliary storage device is composed of, for example, a non-volatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
- the PLC 100 includes only one processor 112, but a plurality of processors may be mounted. It should be noted that each processor may have a plurality of cores.
- the processor 112 periodically executes one or a plurality of tasks. When a plurality of tasks are executed by the arithmetic processing unit 110, different priorities may be set for the plurality of tasks.
- the processor 112 transfers the communication frame 20 (for example, input data 134, output data 135) described later stored in the buffer 132 described later of the communication circuit 130 to the storage unit 114.
- the storage unit 114 provides a work area required for executing a program on the processor 112.
- the storage 119 includes a peripheral processing program 120, an IO refresh program 125, a system program 122, a scheduler 123, a measurement program 126, a UPG library 170 including one or more UPG 69s, and a time synchronization program 121 for performing time synchronization.
- the system program 122 includes a library such as an OS (Operating System) and a function.
- the IO refresh program 125 is executed, the IO refresh 72 is executed.
- the field value (input data) included in the communication frame 20 received via the communication circuit 130 is transmitted to the arithmetic processing unit 110.
- the IO refresh program 125 transmits the control data (output data) calculated by the PLC 100 on the network 11. In this way, the IO refresh program 125 realizes the IO refresh 72 that transfers at least one of the input data and the output data.
- the UPG69 includes a control calculation program for performing an calculation based on the input data 134 of the storage unit 114 in order to control the control target.
- Control operations include sequence control and, for example, motion control operations that control the behavior of a robot.
- the calculated value such as the control data obtained by the control calculation process of the UPG69 is stored in the storage unit 114 as the output data 135.
- the communication program 127 generates the communication frame 20 by using the output data 135 of the storage unit 114, and controls the communication circuit 130 so as to transmit and receive the communication frame 20.
- the peripheral processing program 120 is a process different from the control arithmetic processing executed by the UPG69, and is a process executed around the control arithmetic processing, for example, logging of the communication frame 20 exchanged via the network 11. Including processing and so on.
- the scheduler 123 is an example of "execution means" for causing the processor 112 to execute a plurality of programs including UPG69.
- the scheduler 123 is a program that manages resource allocation such as the usage time of the processor 112 and execution timing according to the priority for the process or task of the PLC 100.
- Such processes or tasks include processes or tasks that can be generated by the peripheral processing program 120, UPG69, IO refresh program 125, time synchronization program 121, communication program 127, and the like being executed by the processor 112.
- the scheduler 123 adjusts the execution timing of each program by the processor 112 in a cycle based on, for example, a predetermined control cycle according to the time-synchronized timer 160.
- the PLC 100 can cyclically perform the control calculation process of the UPG69 and the IO refresh 72 at a cycle based on the time synchronized with other devices.
- the measurement program 126 mainly includes a program for measuring (calculating) various factors for determining the arrangement.
- the measurement program 126 includes a delay time measurement program 86 for measuring the communication delay time 631 and a resource measurement program 89 that measures (calculates) the amount of resources 632 that can be used to execute the UPG69.
- the resource measurement program 89 measures the time 634 (hereinafter, also referred to as UPG execution time 634) required from the start to the completion of the UPG 69 by the memory size calculation program 87 for calculating the storage area size 633 and the processor 112. Includes a time measurement program 88.
- the communication controller 107 receives the UPG69 via the network 11 or another communication path.
- the memory card interface 108 is configured so that the memory card 116 can be attached and detached, and data can be written to the memory card 116 and various data (user programs, data, etc.) can be read from the memory card 116. There is.
- the UPG69 may be loaded from the memory card 116 into the storage 119.
- the communication circuit 130 connects the communication ports 136 and 137 that physically connect the network 11.
- the communication port 136 is connected to the network 11 connected to the other PLC100 side
- the communication port 137 is connected to the network 11 connected to the field device 90 side.
- the communication circuit 130 exchanges a communication frame 20 with another device via the communication ports 136 and 137.
- the communication circuit 130 includes a buffer 132 that temporarily stores a communication frame 20 transmitted / received via the network 11.
- the communication frame 20 temporarily stored in the buffer 132 includes, for example, input data 134 and output data 135.
- the communication circuit 130 transmits and receives the communication frame 20 as follows, for example.
- the communication circuit 130 copies the communication frame 20 based on the output data 135 from the storage unit 114 via the DMA controller 140 in accordance with the instruction of the processor 112, stores the copy as the output data 135 in the buffer 132, and also stores the communication frame. 20 is transmitted on the network 11.
- the communication circuit 130 copies the communication frame 20 arriving (receiving) from the network 11 in accordance with the instruction of the processor 112, stores the copy as input data 134 in the buffer 132, and stores the communication frame 20 in the arithmetic processing unit 110. Output to.
- the communication frame 20 is stored in the storage unit 114 as input data.
- the data of the communication frame 20 to be transmitted / received may be stored in the storage unit 114 for a period longer than the control cycle, or only the data of the communication frame 20 of the latest control cycle may be stored in the storage unit 114.
- the "IO refresh 72" by the PLC 100 includes at least one of transmission of output data 135 (communication frame 20) to another device and reception of input data 134 from the other device.
- the input data 134 corresponds to the communication frame 20 of the field value collected and transferred by the field device 90
- the output data 135 is the control data calculated by the control calculation process of the UPG 69 of the PLC 100.
- the communication frame 20 corresponds to the communication frame 20.
- the DMA controller 140 is connected to the arithmetic processing unit 110 and the communication circuit 130, and has a function of speeding up data access between the arithmetic processing unit 110 and the communication circuit 130. This makes it possible to shorten the IO refresh processing time and reduce the jitter of the transmission timing.
- a configuration in which the arithmetic processing unit 110, the communication circuit 130, and the DMA controller 140 are distinguished is drawn, but the configuration is not limited to this, and any mounting form can be adopted.
- it may be configured by a SoC (System on Chip) in which all or a part of the arithmetic processing unit 110 and all or a part of the communication circuit 130 are mounted on the same chip.
- SoC System on Chip
- a SoC in which the processor 112 of the arithmetic processing unit 110 and the main functions of the DMA controller 140 are mounted on the same chip may be used.
- FIG. 3 is a diagram schematically showing a configuration of a main part of the field device 90 according to the embodiment of the present invention.
- the field device 90 has the same configuration as the communication I / F (Interface) 93 for connecting the processor 91, the memory 92, the servomotor, etc., the communication circuit 94 for connecting the network 11, and the timer 160 of the PLC 100.
- a timer 99 is provided, and a memory card interface 95 to which the memory card 96 is detachably mounted is provided.
- Such devices may not have the functionality and circuitry to handle the memory card 96. Therefore, the field device 90 may also include devices that do not have the functions and circuits associated with the memory card 96.
- the communication I / F 93 receives the field value from the control target and transmits the control data from the processor 91 to the control target in accordance with the command from the processor 91. As a result, the controlled object is controlled according to the command value and the controlled variable, and the resulting field value is output.
- the communication circuit 94 includes communication ports 971 and 972 that physically connect the network 11.
- the communication circuit 94 exchanges data with other devices via the communication ports 971 and 972.
- the communication port 971 connects the network 11 connected to the PLC100 side
- the communication port 972 connects the network 11 connected to the field device 90 side.
- the communication circuit 94 includes a buffer 941 that temporarily stores data transmitted and received via the network 11.
- the data to be transmitted / received is temporarily stored in the buffer 941 as, for example, input data 944 or output data 943.
- the memory 92 is configured to include a flash memory, a hard disk, DRAM, SRAM, and the like, and provides a work area necessary for executing a program on the processor 91.
- the memory 92 includes a system program 81, an application program 82 including a program for operating a control target (servomotor, robot) connected to the field device 90, a communication program 83, and a scheduler for periodically executing the program. 84, output data 943, input data 944, and the like are stored.
- the memory 92 may store programs or data from the support device 500 via the PLC 100 or from the memory card 96 via the memory card interface 95.
- the communication program 83 is a program that controls the communication I / F 93 and the communication circuit 94.
- the communication program 83 includes a time synchronization program 831 for performing time synchronization.
- the communication circuit 94 copies the output data 943 of the memory 92 in accordance with the instruction of the processor 91, stores the copy as the output data 943 in the buffer 941, and transmits the output data 943 on the network 11. Further, the communication circuit 94 receives the data arriving from the network 11 according to the instruction of the processor 91, copies the received data, and stores the copy as input data 944 in the buffer 941. Further, the processor 91 stores the input data 944 in the memory 92.
- FIG. 4 is a diagram showing a configuration example of the host device 600 according to the present embodiment.
- the host device 600 includes a general-purpose computer configuration. With reference to FIG. 4, the host device 600 includes a timer 601, a processor 603 such as a CPU or MPU, a storage device, and a network controller 620 for exchanging data with other devices including the PLC 100.
- the host device 600 further includes a memory card interface 621 to which the memory card 622 is detachably attached and the attached memory card 622 is read / written.
- the network controller 620 may be configured to include, for example, a NIC. These components are connected to each other via an internal bus 602 so as to be capable of data communication.
- the storage device includes a ROM (Read Only Memory) 604, a RAM (Random Access Memory) 605, and an HDD (Hard Disk Drive) 606. These storage devices constitute an auxiliary storage device and a main storage device.
- the auxiliary storage device is composed of, for example, a non-volatile storage device such as an HDD 606 or an SSD (Solid State Drive).
- the main storage device is composed of a volatile storage device such as DRAM or SRAM included in the RAM 605.
- the processor 603 may include a multiprocessor and be configured to execute UPG69 in parallel.
- the HDD 606 includes a system program 701 including an OS (Operating System), a server program 68, a UPG library 171 for storing one or more UPG 69s, a communication program 64 including a time synchronization program 67 for performing time synchronization, a scheduler 63, and the like. And another program for performing other processing different from the control operation of UPG69 is stored. Further, the HDD 606 stores the measurement program 126 including the delay time measurement program 86 and the resource measurement program 89, similarly to the PLC 100 of FIG. The resource measurement program 89 includes a memory size calculation program 87 and an execution time measurement program 88.
- the processor 603 reads (expands) the program of the HDD 606 into the RAM 605 and executes it.
- the scheduler 63 is an example of "execution means" for causing the processor 603 to execute a plurality of programs including UPG69.
- the scheduler 63 is a program that manages resource allocation such as the usage time of the processor 603 and execution timing according to the priority for the process or task of the host device 600.
- Such processes or tasks include processes or tasks that can be generated by executing various programs of HDD 605 by processor 603.
- the scheduler 63 can adjust the execution timing of each program by the processor 603 in a cycle based on, for example, a predetermined control cycle according to the time-synchronized timer 601. As a result, the host device 600 can cyclically execute the control calculation process of the UPG69 at a cycle based on the time synchronized with the other device.
- the RAM 605 includes a reception data area 661 for storing the input data (transmission) 182 described later and a transmission data area 662 for storing the output data (reception) 183 described later.
- the input data (transmission) 182 and the output data (reception) 183 consist of an identifier, a variable name, and data corresponding to the variable, which is the source or destination of the data.
- the processor 603 stores the input data (transmission) 182 received from the PLC 100 via the network controller 620 in the reception data area 661. Further, the processor 603 executes a control calculation process using the input data (transmission) 182 of the reception data area 661, and stores the output data (reception) 183, which is a calculated value, in the transmission data area 662.
- the reception of the input data (transmission) 182 and the transmission of the output data (reception) 183 are realized by the processor 603 executing the communication program 64.
- FIG. 5 is a diagram schematically showing the configuration of the support device 500 according to the present embodiment.
- the support device 500 is a computer system that includes a CPU (Central Processing Unit) 502 and a storage unit that stores programs and data, and operates according to the program.
- the storage unit includes a ROM (Read Only Memory) 503, a RAM (Random Access Memory) 504, and an HDD (Hard Disk Drive) 505.
- the support device 500 further includes a communication controller 507 and an I / O (Input / Output) interface 508.
- the support device 500 further includes a keyboard 509 and a display 510.
- the keyboard 509 receives an input including an instruction from the user to the support device 500.
- the support device 500 may include other devices such as a mouse.
- the display 510 includes an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence), and displays a video signal or an image according to the video signal output from the support device 500.
- the support device 500 includes an R / W (reader / writer) device 506 that detachably attaches an external storage medium 501 and reads / writes a program and / or data to the attached storage medium 501.
- the communication controller 507 controls communication between the support device 500 and the external device via the network 11.
- the communication controller 507 is configured to include, for example, a NIC (Network Interface Card).
- the I / O interface 508 controls the exchange of data between the CPU 502 and the keyboard 509 and the display 510.
- the HDD 505 includes a system program 70 including an OS, a UPG generation program 71 for generating UPG69, a UPG library 172 for storing one or more generated UPG69, a placement program 61 for realizing a placement tool 630, and other devices. It includes a communication program 611 for communicating with the device and UPG placement information 627 indicating the UPG placement determined by the placement tool 630.
- the allocation program 61 includes a necessary resource acquisition program 629 for acquiring the necessary resource amount 632 for arranging the UPG69 and a delay time acquisition program 163 for acquiring the communication delay time 631.
- the required resource acquisition program 629 includes a memory size acquisition program 162 for acquiring the storage area size 633 from each device and an execution time acquisition program 262 for acquiring the UPG execution time 634 from each device.
- the placement tool 630 causes the UPG placement information 627 to be displayed on the display 510 via the I / O interface 508.
- the UPG generation program 71 includes an editor that edits (generates) UPG69 according to a user operation received from the keyboard 509, a compiler that compiles the edited UPG69, a builder that converts UPG69 into an executable format, and the like. Note that the builder may include a compilation function.
- FIG. 6 is a diagram schematically showing an example of the configuration of the communication frame 20 according to the present embodiment.
- FIG. 6 shows an example of a basic communication frame 20.
- the basic communication frame 20 includes an area for storing the preamble 21, an area for storing the destination 22 of the frame, an area for storing the source 23 of the frame, an area of the tag 24, and a network type 25. Includes an area for storing the error correction information 27, and further includes an area for storing the payload 26 which is the data body to be transferred.
- the destination 22 and the source 23 of the communication frame 20 include information that uniquely identifies each device, for example, a MAC (Media Access Control address).
- the payload 26 includes, for example, input data 134,944 or output data 135,943 corresponding to field values.
- the area of the destination 22 includes a stream ID (Identifier) 29 for managing the transfer of the communication frame 20.
- FIG. 7 is a diagram for explaining the stream ID 29 according to the present embodiment.
- the communication frame 20 transferred on the network 11 is managed in units of the flow 42.
- the device connected to the network 11 can be the source (TALKER) or the destination (LISTENER) of the communication frame 20.
- Each flow 42 is assigned a stream ID 29 defined by a set of a TALKER identifier and a LISTENER identifier.
- the TALKER when the payload 26 is the control data of the output data, the TALKER is assigned the identifier of the device that is the source of the payload 26 (control data), and the LISTENER is the destination device (field device). 90) MAC address is assigned.
- the payload 26 when the payload 26 is a field value of input data, TALKER is assigned the MAC address of the source device, and LISTENER is assigned the MAC address of the destination device. Therefore, each device can uniquely identify each communication frame 20 to be exchanged based on the stream ID 29.
- control system data can be stored as the payload 26.
- the area of the payload 26 includes an area for storing the field value of the control system data and an area for storing the control data of the control system data.
- each field device 90 determines the position in the area of the payload 26 based on, for example, an offset individually assigned to the device (for example, an offset from the beginning of the communication frame 20). Specify and read / write data at the specified position. Specifically, the communication program 83 reads the control data (input data 944 or output data 135) from the position based on the offset of the own device in the area of the payload 26 of the incoming communication frame 20, and the communication to be transmitted. The field value (output data 943 or input data 134) is written at a position based on the offset of the area of the payload 26 of the frame 20.
- the PLC 100 stores the offset information assigned to each field device 90. Therefore, based on this offset information, the PLC 100 reads the field value (output data 943 or input data 134) of each field device 90 from within the area of the payload 26 of the incoming communication frame 20, and also based on this offset information, Control data (input data 944 or output data 135) can be written to the offset position of each field device 90 in the area of the payload 26 of the communication frame 20 to be transmitted.
- the PLC 100 can read and write the control system data of each field device 90 in the area of the payload 26 of the communication frame 20, and each field device 90 can read and write the control system data of its own device in the area of the payload 26 of the communication frame 20. Can read and write.
- FIG. 8 is a block diagram schematically showing an example of the software configuration of the device according to the present embodiment. Since the configuration of FIG. 8 is common to the PLC 100 and the host device 600, the PLC 100 will be described as a representative here, and the description of the configuration of the host device 600 will not be repeated.
- the PLC100 realizes a processing unit corresponding to the program by executing each program shown in FIG. Specifically, the PLC 100 corresponds to the UPG library 170 (corresponding to the UPG library 171 of the upper device 600) and the scheduler 123 (corresponding to the scheduler 63 of the upper device 600) for storing the UPG 69 generated by the support device 500.
- the scheduling processing unit 610 and the communication processing unit 615 of the communication program 127 are included.
- the PLC 100 further includes a secured memory calculation processing unit 612 corresponding to the memory size calculation program 87, a delay measurement processing unit 613 corresponding to the delay time measurement program 86, and a UPG execution time measurement processing unit 614 corresponding to the execution time measurement program 88. Including.
- the scheduling processing unit 610 adjusts the execution timing of each program by periodically allocating the free time of the processor to various application programs including UPG69 in order to cause the processor to execute the program.
- the communication processing unit 615 includes a transmission processing unit 616 and a reception processing unit 617 that transmit and receive the communication frame 20, and a time synchronization processing unit 618 of the time synchronization program 121 (corresponding to the time synchronization program 67 in the host device 600).
- FIG. 9 is a block diagram schematically showing an example of the software configuration of the support device 500 according to the present embodiment.
- the support device 500 by executing each program shown in FIG. 5, a processing unit corresponding to the program is realized.
- the support device 500 includes a UI 520, a UPG library 172, a communication processing unit 526 corresponding to the communication program 611, and various programs and data for providing the placement tool 630.
- the communication processing unit 526 includes a transmission processing unit 527 and a reception processing unit 528 that transmit and receive information to and from an external device.
- the UI 520 accepts user operations on the UPG program generation tool provided by executing the UPG generation program 71 and the support tool including the arrangement tool 630 provided by executing the arrangement program 61.
- the UPG69 generated by the UPG program generation tool is stored in the UPG library 172.
- the support device 500 further includes a UPG required resource calculation processing unit 524 corresponding to the required resource acquisition program 629, a UPG execution memory confirmation processing unit 522 corresponding to the memory size acquisition program 162, and an execution time. Arrangement determination is performed based on the execution time processing unit 529 corresponding to the acquisition program 262, the delay calculation processing unit 525 corresponding to the delay time acquisition program 163, and the information calculated (measured) by these processing units, and the UPG arrangement information 627. Includes a determination processing unit 523 that outputs.
- the support device 500 stores the information acquired by each processing unit of the arrangement tool 630 in the storage unit of the RAM 504.
- the information to be acquired is the information acquired for each UPG 69, which is the UPG required memory 530 calculated by the UPG required resource calculation processing unit 524, the reserved memory 531 of the device received from each device, and the delay calculation processing unit 525. Includes the delay time 532 of all communication paths calculated by, and the execution time 533 of each UPG.
- the execution time 533 of each UPG is the time received from each device by the execution time processing unit 529, and indicates the time during which each device can use the processor to execute the UPG. Details of the UPG required memory 530, the reserved memory 531 of each device, the delay time 532 of all communication paths, and the execution time 533 of each UPG will be described later.
- the control system 1 provides an environment in which the host device 600 and the PLC 100 control the field device 90 in cooperation with each other. This cooperative control will be described with reference to FIGS. 10 and 11.
- FIG. 10 is a diagram schematically showing a configuration of a control system 1 for explaining cooperative control according to the present embodiment.
- the control system 1 two PLC100s (for example, PLC100A and PLC100B) are connected to the host device 600.
- the number of PLCs 100 connected to the host device 600 is not limited to two, and may be three or more.
- FIG. 11 is a diagram schematically showing an example of the timing chart of the control system 1 of FIG. In FIG. 11, the processing of the field device 90 is omitted.
- the host device 600 of FIG. 11 has a UPG (1) for control calculation processing based on the input data (transmission) 182 from the PLC 100A and a UPG (1) for control calculation processing based on the input data (transmission) 182 from the PLC 100B. 2) and execute.
- UPG (1) and UPG (2) can be started to be executed at the same time in response to a common trigger based on the synchronized time.
- the IO refresh 72 is an input / output program in which the PLC 100 transfers the input data (field value) from the field device 90 to be controlled to the host device 600 and outputs the control data received from the host device to the field device 90 to be controlled. Provides the functionality of.
- the PLCs 100A and 100B start the IO refresh 72 in synchronization with the start of the control cycle 10, but the number of field devices 90 connected to each PLC100, or the number of input variables to be collected, or Due to a difference in the load of the network 11, there may be a difference in the time during which the upper communication 73 can be started (that is, the time during which the collection of the input data (transmission) 182 which is the field value is completed by the IO refresh 72).
- the upper device 600 receives the input data (transmission) 182 from the PLC 100A and stores it in the area 661, and the data storage time 12 and the input data from the PLC 100B.
- the data storage time 12 for receiving 182 and storing it in the area 661 does not match and is shifted. In the host device 600, this "deviation" is adjusted by the waiting time 14. For example, the higher-level device 600 simultaneously (parallel) UPG (1) and UPG (2) at a time of 15 when the waiting time 14 after the completion of data storage of the input data (transmission) 182 of the PLC 100B has elapsed. ) To start execution.
- UPG (2) may be executed using the calculated value of UPG (1).
- the calculated value based on the position data (output data) from the servo device (field device 90) connected to the PLC100A is converted into the control calculation of the UPG (2) (for example, the servo device (field) connected to the PLC100B. It can be used to determine the command value of the device 90).
- the control data (output data (reception) 183) which is the calculated value of the control operation which is the execution result of the UPG (1) and the UPG (2) executed in parallel is stored in the area 662 with the data storage time 13.
- the output data (reception) 183 of the area 662 is transmitted to the PLCs 100A and 100B, respectively.
- the PLCs 100A and 100B each complete receiving the output data (reception) 183 from the host device 600 before the next control cycle 10 is started.
- the control calculation process of the UPG69 of the host device 600 and the input / output process of the PLC 100 ( An environment is provided in which the IO refresh 72) and the IO refresh 72) are performed cooperatively within the shared time.
- the PLC 100 since the PLC 100 does not need to provide an execution environment for the control calculation process, the PLC 100 can control the field device 90 (independently) without being restricted by the processing amount or the processing time required for the control calculation process. it can.
- FIG. 12 is a diagram schematically showing a pattern of arrangement determination according to the present embodiment in a table format.
- the placement determination patterns were classified according to the combination of the delay time 532 of all communication paths, the resource-based conditions available for UPG execution in each device, and the normal or abnormal use cases of the control system 1. For example, patterns 1 to 6 are shown.
- the condition of FIG. 12 is based on the resources available on the PLC 100 and the communication delay time 631, assuming that the resources of the host device 600 (storage area size 633 and UPG execution time 634) are sufficient to execute UPG 69. Show the conditions.
- Classification (1) corresponds to the case where each PLC100 has resources available for executing UPG69 and the host device 600 is connected to the control system 1.
- Classification (2) corresponds to the case where each PLC100 has no resources available for executing UPG69 and the host device 600 is connected to the control system 1.
- Classification (3) corresponds to the case where each PLC100 has no resources available for executing UPG69 and the host device 600 is not connected to the control system 1.
- Classification (1) has a normal pattern 2 and an abnormal pattern 3 when the communication delay time 631 of the host device 600 is smaller than the communication delay time 631 of each PLC 100, and the communication delay time 631 of each PLC 100. Has a pattern 4 and a pattern 5 at the time of abnormality when the communication delay time 631 of the host device 600 is smaller. Further, the classification (2) has a pattern 6 at the time of abnormality, and the classification (3) has a pattern 1 at the time of normal.
- the host device 600 can communicate with the PLC 100 and does not communicate with the field device 90.
- the communication route between the PLCs 100 includes a route for direct communication and a route for passing through the host device 600, and when both routes are normal, the PLC 100 communicates with another PLC100 on the route for direct communication. ..
- the arrangement is determined under the same pattern for all the UPG69s.
- FIG. 13 is a flowchart showing an example of processing of the UPG required resource calculation processing unit 524 according to the present embodiment.
- FIG. 14 is a diagram schematically showing an example of UPG attached information 310 according to the present embodiment.
- FIG. 15 is a diagram schematically showing an example of the resource confirmation information 320 according to the present embodiment.
- FIG. 16 is a diagram schematically showing the relationship between the execution time and the execution time limit according to the present embodiment.
- the placement tool 630 provides information that specifies UPG69 to be performed in all steps, an execution time limit 313 set for each UPG69, and an execution limit of all UPG69s via UI520. Accept time 315 (step T1).
- the execution time limit 313 of the UPG69 is an upper limit value corresponding to the total of the execution time and the communication delay time required for the execution of the UPG69. Further, the execution time limit 315 of all UPG69s is an upper limit value of the total sum of the above-mentioned totals of each UPG69, and is a value based on, for example, a control cycle.
- the UPG execution time measured for each UPG 69 FIG. 16
- the time indicated by the solid line arrow of 16) and the execution time limit 313 of the UPG time indicated by the broken line arrow of FIG.
- the UPG required resource calculation processing unit 524 specifies the UPG69 specified in step T1 in the UPG library 172, and calculates the UPG required memory 530, which is the memory size required to execute the specified UPG69 (step T3).
- the UPG required resource calculation processing unit 524 can calculate the UPG required memory 530 from the size of the object code, for example, when the object code of the UPG69 is expanded to the main storage device when the UPG69 is executed.
- the method of calculating the required memory size is not limited to this.
- the placement tool 630 creates the UPG attachment information 310 of FIG. 14 from the information received in step T1 and the UPG required memory 530 calculated in step T3, and stores it in the RAM 504.
- UPG (1), UPG (2), and UPG (3) corresponding to each step are designated as UPG69.
- the UPG execution memory confirmation processing unit 522 inquires about the memory size that can be secured for executing UPG69 for each device, that is, the size of the usable storage area (step T5).
- the UPG execution memory confirmation processing unit 522 transmits an inquiry to each device (PLC100 and higher-level device 600) via the communication processing unit 526.
- the reserved memory calculation processing unit 612 receives an inquiry from the support device 500 via the communication processing unit 615, and calculates the memory size that can be reserved for executing UPG69 in the main storage device according to the inquiry. , The calculated memory size is transmitted to the support device 500 as a response.
- the inquiry in step T5 and the response in step T7 are carried out for each of UPG (1) to (3), and the UPG execution memory confirmation processing unit 522 sets a secure memory size which is a response received from each device. It is determined that the reserved memory 531 of the device.
- the UPG execution memory confirmation processing unit 522 determines whether there is a device capable of executing all of UPG (1) to UPG (3) based on the memory size indicated by the reserved memory 531 received from each device (step T9). Specifically, the UPG execution memory confirmation processing unit 522 sets the total value of the memory size indicated by the UPG required memory 530 of the UPG (1) to (3) of the UPG attached information 310 as the memory size indicated by the secured memory 531 of the device. The comparison is performed, and based on the comparison result, it is determined whether or not there is a device that satisfies the condition (total value ⁇ memory size indicated by the reserved memory 531).
- the UPG execution memory confirmation processing unit 522 determines that there is no device satisfying the above conditions (NO in step T9), it outputs an error notification of insufficient memory via UI520 (step T11), but satisfies the above conditions. If it is determined that there is an apparatus (YES in step T9), the process proceeds to step T13.
- step T13 and thereafter the execution time processing unit 529 inquires and acquires the execution time of UPG69 in each device. Specifically, the execution time processing unit 529 downloads UPGs (1) to (3) of the UPG library 172 to each device determined to satisfy the above conditions via the communication processing unit 526 (in the figure). Is abbreviated as DL) to inquire about the execution time (step T13).
- the UPG execution time measurement processing unit 614 executes UPGs (1) to (3) downloaded from the support device 500 in response to an inquiry, and measures and measures the UPG execution time 533, which is the execution time.
- the UPG execution time 533 is transmitted to the support device 500 (step T15). After that, the UPG execution time measurement processing unit 614 erases the UPGs (1) to (3) from the main storage device.
- the execution time processing unit 529 receives the UPG execution time 533 of each of UPG (1) to (3) from each device via the communication processing unit 526, and based on the received UPG execution time 533, the execution time processing unit 529 receives the UPG (1) to (3). It is determined whether or not there is an apparatus capable of completing all of (3) within the execution time limit 313 (step T17). When the execution time processing unit 529 determines that there is no device capable of completing execution of all of UPG (1) to (3) within the execution time limit 313 (NO in step T17), the execution time processing unit 529 notifies the time limit error via UI520. Output (step T19). When it is determined that there is a device capable of completing all of UPG (1) to (3) within the execution time limit 313 (TES in step T17), the communication delay time is confirmed by measuring the communication delay time. Is carried out (step T21).
- the placement tool 630 generates the resource confirmation information 320 of FIG. 15 and stores it in the RAM 504 by using the device allocation memory 531 and the UPG execution time 533 received from each device in steps T9 to T17.
- the resource confirmation information 320 of FIG. 15 has device allocation memory 531 and UPG execution time 533 for PLCs (1) to (4) and higher-level devices 600 corresponding to PLCs 100A to 100D, respectively.
- the devices satisfying the above conditions are PLCs (1) to (3) and higher-level devices. Since it is 600, in step T13, UPG (1) to (3) are downloaded to PLCs (1) to (3) and the host device 600, respectively.
- the determination in step T17 is performed based on the result of the comparison in which the UPG execution time 533 of FIG. 15 received from each device is compared with the UPG execution time limit 313 of the UPG attachment information 310 of FIG. According to FIG.
- the PLC (1), the PLC (3), and the host device 600 are determined to be devices capable of completing execution of all of UPG (1) to (3) within the execution time limit 313 (in step T17). YES).
- FIG. 15 also shows the UPG execution time 533 when the UPGs (1) to (3) are downloaded to the PLC (4).
- the user can, for example, start the UPG generation program 71, re-edit UPG (1) to (3), and change the size.
- the error notification in step T19 is output, for example, the user can change the UPG execution time limit 313 input to the support device 500 in step T1.
- FIG. 17 is a flowchart showing an example of the process of measuring the communication delay time between the devices according to the present embodiment.
- FIG. 18 is a diagram schematically showing a transmission path of test data when measuring a communication delay time between devices according to the present embodiment. With reference to FIG. 17, a process in which the delay calculation processing unit 525 measures the communication delay time between the devices will be described.
- the delay calculation processing unit 525 transmits request data requesting the execution of time synchronization to each PLC 100 and the host device 600 via the communication processing unit 526 (step T23).
- the delay measurement processing unit 613 causes the time synchronization processing unit 618 to perform the time synchronization processing according to the request data received via the communication processing unit 615 (step T25).
- the devices upper device 600, PLC100 and field device 90 are time-synchronized with each other.
- the time synchronization is performed in response to the time synchronization request from the support device 500 (delay calculation processing unit 525), but the time synchronization method is not limited to this.
- the devices can be time-synchronized with each other without the request, and in the present embodiment, such time synchronization without the request may be performed.
- the delay calculation processing unit 525 transmits the time synchronization request data, and then transmits the test data to each PLC 100 and the host device 600 via the communication processing unit 526 (step T27).
- the delay measurement processing unit 613 of each PLC 100 and the host device 600 is a time that is the time output from each device on the network 11 by the timer of the device using the test data received from the delay calculation processing unit 525 of the support device 500.
- Collect stamps step T29.
- the delay measurement processing unit 613 of each PLC 100 and the host device 600 transmits the collected time stamps to the support device 500. Details of time stamp collection will be described later.
- the delay calculation processing unit 525 calculates the delay time 532 of all communication paths, which is the communication delay time between each device, from the time stamps received from each PLC 100 and the host device 600, and calculates the delay time 532 of all communication paths. It is stored in the RAM 504 (step T31).
- the determination processing unit 523 is a device (PLC100 or higher device 600) to which each UPG 69 should be arranged based on the UPG required memory 530, the reserved memory 531 of each device, the delay time 532 of all communication paths, and the execution time 533 of each UPG. ) Is determined (step T33).
- the support device 500 may then download each UPG69 to the determined device.
- the process of step T33 can be performed for each of patterns 1 to 6 in FIG. 12, and the details will be described later.
- the placement tool 630 outputs or stores the notification of the UPG placement information 627 indicating the placement determination acquired in step T33 via the UI520 (step T35).
- the placement tool 630 calculates information on the device on which each UPG69 should be placed and the device on which the UPG69 should be executed for each of the normal and abnormal patterns described later, and the calculated information is used as UPG. It can be stored as arrangement information 627.
- the placement tool 630 outputs the UPG placement information 627 to the display 510 via the UI 520.
- the user searches for pattern information corresponding to the state (normal or abnormal) of the control system 1 from the UPG placement information 627 stored in advance, and places (downloads) the UPG69 in the device based on the searched information, or A device based on the retrieved information can be made to execute UPG69.
- the time stamp (time data) collection process performed by the delay measurement processing unit 613 will be described with reference to FIG. In FIG. 18, the field device 90 of the field device group 3A of PLC (1) will be described separately from the field devices 90A, 90B and 90C.
- the delay measurement processing unit 613 performs, for example, end-to-end (E2E) data communication for time stamp collection according to the test data received from the support device 500.
- E2E end-to-end
- the delay measurement processing unit 613 of the PLC (1) of FIG. 18 generates a plurality of communication frames 20 in which the time data of the timer 16 of the own device is stored in the payload 26.
- the plurality of communication frames 20 are communication frames 20 addressed to each of the field devices 90A, 90B and 90C of the field device group 3A, and communication addressed to PLC (2), PLC (3), PLC (4) and the host device 600, respectively. Includes frame 20 and.
- Each of these communication frames 20 stores the time data output by the timer 160 of the PLC (1) in the payload 26, and the PLC (1) and the destination (LISTENER) of the stream ID 29 are stored in the PLC (1) and the destination (LISTENER), respectively.
- the identifier of the destination device is assigned.
- the PLC (1) transmits these communication frames 20 on the network 11.
- Each device determines whether the communication frame 20 is addressed to its own device based on the stream ID 29 of the communication frame 20.
- the time data of the timer of the own device is stored in the payload 26, the communication frame 20 is transmitted to the transmission source (PLC (1)), and the communication frame 20 is determined to be addressed to the own device. If not, the communication frame 20 is passed.
- the PLC (1) transfers between each PLC100, between the PLC (1) and the field device 90A, between each device of the field devices 90A, 90B and 90C, and between the PLC (1) and the host device 600.
- the transmitted communication frame 20 can be received.
- the PLC (1) transmits the communication frame 20 received from each device to the support device 500.
- the delay measurement processing unit 613 of the PLC (2) has a plurality of communication frames 20 in which the time data of the timer 16 of its own device is stored in the payload 26, that is, a communication frame 20 addressed to each field device 90 of the field device group 3B and a higher level.
- a communication frame 20 addressed to each of the devices 600 is generated and transmitted.
- Each device stores the timer time data in the payload 26 in the communication frame 20 of its own device, and transmits the communication frame 20 to the transmission source (PLC (2)).
- the PLC (2) receives the communication frame 20 transferred between the PLC (2) and the field device 90, between the field devices 90 of the field device group 3B, and between the PLC (2) and the host device 600. it can.
- the PLC (2) transmits the communication frame 20 received from each device to the support device 500.
- the delay measurement processing unit 613 of PLC (3) and PLC (4) also uses the communication frame 20 addressed to each field device 90 and the host device 600 of the field device group 3C, and each device.
- the communication frame 20 storing the time data is transmitted to the support device 500.
- the PLC (3) receives the communication frame 20 transferred between the PLC (3) and the field device 90, between the field devices, and between the PLC (3) and the host device 600, and receives the communication frame 20 to the support device 500. Can be transferred.
- the PLC (4) receives the communication frame 20 transferred between the PLC (4) and the field device 90, between each field device, and between the PLC (4) and the host device 600, and receives the communication frame 20 to the support device 500. Can be transferred.
- the delay calculation processing unit 525 of the support device 500 collects a time stamp from the time data of the payload 26 of the communication frame 20 received from the PLC (1) to the PLC (4), and communicates between the collected time stamps between the devices.
- the delay time is calculated and stored in the RAM 504 as the delay time 532 of all communication paths.
- the method of collecting this time stamp is an example, and is not limited to this.
- FIG. 19 is a diagram showing an example of information referred to by the determination processing unit 523 according to the present embodiment for the arrangement determination.
- FIG. 20 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 1 according to the present embodiment.
- the information includes a UPG execution time of 533 and one or more variables 314 referenced within the UPG 69, corresponding to each of the UPGs (1) to (3) to be placed.
- the variable 314 is an input variable used in the corresponding UPG69, and can be extracted from, for example, the program code of the UPG69.
- FIG. 20 identifies and shows the field device 90 that outputs the field values set in the variables used by each UPG69 in FIG.
- FIG. 21 is a flowchart showing an example of the arrangement determination process according to the pattern 1 according to the present embodiment.
- the determination processing unit 523 selects the UPG having the maximum UPG execution time 533 (here, referred to as UPG-max) from the UPGs (1) to (3) of the UPG library 172 (step S3).
- the determination processing unit 523 selects UPG (3) as UPG-max according to (t1 ⁇ t2 ⁇ t3) (step S3).
- the determination processing unit 523 determines the maximum value among the total of the communication delay time and the UPG execution time 533 of the UPG-max variable 314 in each of the PLCs (1) to (4) (step S7).
- the communication delay time of this variable 314 corresponds to the time required for IO refresh 72 when UPG-max is executed on the PLC 100.
- the delay time 532 of all communication paths for example, the time for data to pass through (through) the PLC 100, that is, the communication delay time between the PLC 100 is 0.3 msec, and the communication between the PLC 100 and the field device 90 or between the field device 90
- the delay time is assumed to be 0.1 msec.
- the UPG execution time 533 in each of the PLCs (1) to (4) is, for example, uniformly 0.5 msec.
- the communication delay time between the devices includes the communication delay time of the input data (data of the variable 314) used by the UPG69. Therefore, the sum of the communication delay time of the variable 314 of UPG-max and the UPG execution time 533 is the time required for IO refresh 72 and UPG execution when the UPG-max is executed.
- the communication delay time between the devices includes the communication delay time of the input data used by the control program.
- the determination processing unit 523 determines the corresponding PLC100 having the smallest value among the total maximum values corresponding to each PLC100 extracted in step S7 (step S9).
- the determination processing unit 523 downloads UPG-max to the determined PLC100 (step S11).
- the determination processing unit 523 selects the larger size of the reserved memory 531 as the download destination of UPG-max.
- the determination processing unit 523 determines whether or not there is a so-called remaining UPG69 in the UPGs (1) to (3) for which the processes of steps S3 to S11 have not been performed (step S13). When the determination processing unit 523 determines that there is a remaining UPG69 (YES in step S13), the determination processing unit 523 returns to step S3 and performs the processing after step S3 on the remaining UPG69. When the determination processing unit 523 determines that there is no remaining UPG69 (NO in step S13), the determination processing unit 523 proceeds to step S15.
- the determination processing unit 523 calculates the total of the execution time of the UPG and the communication delay time (IO refresh time) of the variable in the determined PLC100 for each of the UPGs (1) to (3), and calculates the total sum. Calculate (step S15).
- the determination processing unit 523 compares the execution time limit 315 set by the user in step T1 with the total sum of the UPGs (1) to (3) calculated in step S15, and is based on the result of the comparison (total). It is determined whether or not the condition of the sum total ⁇ execution time limit 315) is satisfied (step S17).
- the determination processing unit 523 determines that the condition (total sum ⁇ execution time limit 315) is satisfied (YES in step S17)
- the determination processing unit 523 outputs a notification to the effect that the arrangement has been successfully determined via the UI 520 (step S19).
- the determination processing unit 523 determines that the condition is not satisfied (NO in step S17)
- the determination processing unit 523 outputs an error notification of the execution time limit via the UI520 (step S21).
- UPG (1) to (3) are arranged and determined in PLC (1) to PLC (3), respectively.
- the arrangement tool 630 determines the communication delay time and the PLC (1) for each of UPG (1) to (3) when the control system 1 cannot provide the execution environment of UPG69 by the host device 600. ) To (4) Determine the PLC100 to which the UPG69 should be placed from among the PLCs (1) to (4) based on the storage area size available for executing the UPG69 and the resource including the execution time. Can be done.
- FIG. 22 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 2 according to the present embodiment.
- the host device 600 can be included as a candidate for the placement destination of the UPG69.
- pattern 1 the device whose arrangement of the UPG69 was determined by the determination processing unit 523 was automatically determined as the device to execute the UPG69.
- the allocated memory 531 is larger and the UPG execution time 533 is shorter than that of the PLC 100, that is, the higher-level device 600 that provides an environment in which the UPG 69 can be executed at high speed is placed in the device or the device. It can be determined that the device executes UPG69, and the control system 1 can be operated with high performance.
- UPG (1) to (3) can be arranged in the host device 600 because the size of the reserved memory 531 is extremely large as compared with PLCs (1) to (4).
- the placement determination of the UPGs (1) to (3) in the PLCs (1) to (4) can be carried out in the same manner as in FIG.
- FIG. 23 is a flowchart showing an example of the arrangement determination process according to the pattern 2 according to the present embodiment. In the process of FIG. 23, in steps S3 to S12 of FIG. 23, a process of determining an apparatus for executing UPG69 from the higher-level apparatus 600 and PLCs (1) to (4) is performed.
- the communication delay time between the PLC 100 is 0.3 msec
- the communication delay time between the PLC 100 and the field device 90 or between the field device 90 is 0.1 msec
- each PLC 100 It is assumed that the distance between the device and the host device 600 is 0.4 msec.
- the UPG execution time 533 in each of the PLCs (1) to (4) is, for example, 0.5 msec uniformly
- the UPG execution time 533 of the host device 600 is, for example, 0.3 msec.
- the determination processing unit 523 selects UPG-max (step S3) and calculates the total execution time and communication delay time when UPG-max is executed for each of PLCs (1) to PLC (4). (Step S7). As for the maximum value of the total, 1.7 msec, 1.7 msec, 1.7 msec and 2.0 msec are calculated for each of PLC (1) to PLC (4), as in pattern 1.
- the determination processing unit 523 executes UPG-max on the host device 600
- the totals of the variables a3, b3 and c3 of UPG (3) are a3: 1.3 msec, b3: 1.3 msec and c3 :, respectively. Since it is 1.3 msec, the maximum value of 1.3 msec is calculated (step S8).
- the determination processing unit 523 also calculates the maximum value of the total when each PLC 100 communicates variables via the host device 600 (step S8a). That is, by adding (round-trip communication time (0.4 ⁇ 2) msec between each PLC 100 and the host device 600) to the communication delay time, for example, UPG-max (UPG (3)) can be changed to PLC (1).
- UPG-max UPG (3)
- the totals for the variables a3, b3, and c3 of UPG (3) are a3: 0.8 msec, b3: 1.9 msec, and c3: 1.9 msec, respectively, so the maximum value is 1.9 msec. Is extracted. In the case of PLC (2) and PLC (3), the maximum value is 1.9 msec in the same calculation.
- the determination processing unit 523 determines the corresponding PLC100 having the smallest value among the maximum total values corresponding to each PLC100 calculated in step S7 and step S8a (step S9).
- the determination processing unit 523 downloads UPG-max to the determined PLC 100 in the same manner as in pattern 1 (step S11).
- the determination processing unit 523 determines the device having the smallest total maximum value among the host devices 600 and the PLCs (1) to (4) as the execution device for executing UPG-max (step S12). The determination processing unit 523 executes the processing after step S13 in the same manner as in pattern 1.
- the determination processing unit 523 can determine the PLC 100 or the host device 600 as the placement destination of the UPGs (1) to (3), and among them, the execution devices of the UPGs (1) to (3) are selected.
- the host device 600 is determined. That is, when the communication delay time (0.4 msec) between each of the PLCs (1) to (4) and the host device 600 is sufficiently small as in pattern 2, the execution time (0.3 msec) in the host device 600 is Since the execution time of the PLC 100 is shorter than the execution time (0.5 msec) and the size of the reserved memory 531 of the host device 600 is extremely large as compared with the PLCs (1) to (4), in step S12, for example, UPG ( The higher-level device 600 can be determined as the execution device from the higher-level devices 600 and the PLCs (1) to (4) to which the 1) to (3) are arranged.
- steps S13 to S21 are the same as the corresponding processes of FIG. 21, the description will not be repeated.
- control system 1 can be operated with higher performance than when it is executed in the PLC100.
- FIG. 24 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 3 according to the present embodiment.
- pattern 3 when the arrangement of UPGs (1) to (3) was determined in pattern 2 ((A) in FIG. 24), an abnormality such as a disconnection of communication between the host device 600 and the PLC 100 was detected. Indicates the failure mode.
- PLC100 (1) to (4) are, for example, control data (output shown in FIG. 11) which is an execution result of UPG (1) to UPG (3) executed by the host device 600 shown in FIG. Data (reception) 183) cannot be received.
- the placement tool 630 determines the placement of the UPG corresponding to the pattern 3 of the failure mode and calculates the UPG placement information 627 ((B) in FIG. 24).
- the arrangement determination process performed in pattern 3 is a process using the communication delay time in the communication path that does not pass through the host device 600 with respect to the variable communication, and is the same as the process of FIG. 21 shown in pattern 1. , The explanation is not repeated.
- the control system 1 can be continued to operate by performing the rearrangement that determines the execution device of the UPG69 so that the control data can be calculated on the PLC100 side.
- FIG. 25 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 4 according to the present embodiment.
- pattern 4 in a state where UPG (1) to (3) are arranged in the host device 600 and also arranged in PLCs (1) to (3), the communication delay time of the communication path via the host device 600 is delayed. This is a case where the communication delay time without using the communication path via the host device 600 is smaller than that. Therefore, as shown in FIG. 25 (A), the execution devices of UPG (1) to (3) are determined to be PLCs (1) to (3).
- the arrangement tool 630 arranges the UPG corresponding to the pattern 4 of the failure mode. Information 627 is calculated.
- the determination processing unit 523 of the arrangement tool 630 does not use the communication path between the PLC (1) and the PLC (2) for the failure mode pattern 4, that is, the communication delay using the communication path via the host device 600. Calculate the time. For example, the arrangement determination process according to pattern 2 is performed. As a result, the determination processing unit 523 determines, for example, the execution device of UPG (1) and UPG (3) to the higher-level device 600, and arranges UPG (2) in PLC (2) to execute the UPG arrangement. Information 627 is calculated ((B) in FIG. 25).
- the PLC100 is determined to be the executing device of the UPG69 with the UPG69 arranged in the host device 600, and an abnormality occurs in the communication path between the PLC100s, the UPG arrangement information 627 of the pattern 4 is followed.
- the execution device By switching the execution device from the PLC 100 to the host device 600, the operation of the control system 1 can be continued.
- FIG. 26 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 5 according to the present embodiment.
- Pattern 5 is, for example, as shown in FIG. 26 (B), in a state where the executing devices of UPG (1) to (3) of FIG. 26 are determined to be PLCs (1) to (3). Indicates a state (for example, failure) in which PLC (3) cannot execute UPG69.
- the placement tool 630 calculates the UPG placement information 627 corresponding to the pattern 5 of the failure mode in which the above abnormality is detected.
- the determination processing unit 523 of the arrangement tool 630 arranges the PLCs (1), PLCs (2) and PLCs (4) excluding the failed PLC (3) and the host device 600 in the same manner as the processing of the pattern 2. Carry out the decision processing. Thereby, for example, as shown in FIG. 26 (B), the UPG arrangement information 627 that switches the execution device of the UPG (3) from the PLC (3) to the higher-level device 600 can be calculated.
- the execution device is according to the UPG arrangement information 627 corresponding to the pattern 5. Can be switched from the PLC 100 to the host device 600 to continue the operation of the control system 1.
- FIG. 27 is a diagram schematically showing an example of the arrangement of UPG according to the pattern 6 according to the present embodiment.
- the executing devices of UPG (1) to (3) are the host device 600 as shown in FIG. 27 (A)
- the PLC (3) and the host device 600 are shown as shown in FIG. 27 (B).
- FIG. 27A shows a case where, for example, in the arrangement determination process of pattern 2, the higher-level device 600 is determined again as the execution device of UPG (1) to (3).
- the determination processing unit 523 of the arrangement tool 630 follows the notification of the pattern 6, and uses the communication delay time that does not pass through the communication path between the PLC (3) and the higher-level device 600, and performs UPG in the same procedure as the processing of the pattern 2.
- the UPG arrangement information 627 corresponding to the pattern 6 is calculated. For example, according to the UPG arrangement information 627 corresponding to the pattern 6, the execution device of UPG (1) to (3) can be determined again as the higher-level device 600.
- FIG. 2, FIG. 4 and FIG. 5 show configuration examples in which the processors 112, the processor 603, and the CPU 502 provide the necessary functions by executing the programs, respectively, but some of these provided functions are provided. Alternatively, all of them may be implemented using a dedicated hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)). Alternatively, the main part of the PLC 100 may be realized by using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, an environment in which a multiprocessor is provided and can be executed in parallel is provided. Further, the virtualization technology may be used to execute a plurality of OSs (Operating Systems) having different uses in parallel, and to execute necessary applications on each OS.
- OSs Operating Systems
- Each part of FIG. 8 may execute the above processing by executing the program required by the processor 112 or the processor 603.
- the program may be stored in a storage unit (storage 119 or HDD606).
- the processor 112 or the processor 603 executes a required program
- the target program stored in the storage unit is expanded into the RAM.
- the processor 112 or the processor 603 interprets and executes the program expanded in the RAM to control each component.
- each part of FIG. 9 may execute the above processing by executing the program required by the CPU 502.
- the program may be stored in the storage unit (HDD 505).
- the CPU 502 executes a required program
- the target program stored in the storage unit is expanded in the RAM.
- the CPU 502 interprets and executes the program expanded in the RAM to control each component.
- the storage unit is, for example, an auxiliary storage device such as an HDD or SSD, and stores programs and data shown in FIGS. 2, 4 and 5 executed by a processor or a CPU.
- the memory cards 116, 621 and the storage medium 501 electrically, magnetically, optically, and mechanically transmit the information of the program or the like so that the computer or other device, the machine or the like can read the information of the recorded program or the like. Or it is a medium that accumulates by chemical action.
- the PLC 100, the host device 600, and the support device 500 may acquire programs and / or data stored in the storage unit from the memory cards 116, 621 and the storage medium 501.
- a control system (1) including a control target (90) connected to a network (11) and a plurality of devices (100, 600).
- Program storage means (119,606) provided in each device for storing a control program (69) that calculates control data using data exchanged with a control target, and
- An execution means for causing a processor (112,603) to execute a plurality of programs including the control program provided in each device.
- An arrangement means (630) for arranging a plurality of control programs in one or more of the plurality of devices is provided.
- the arrangement means for each control program the control program is arranged from among the plurality of devices based on the communication delay time between each device (631) and the information of resources available for executing the control program of each device (632).
- a control system that determines which device is to be used.
- the control system according to configuration 1 wherein the information on resources that can be used to execute the control program of each device includes the size of a storage area (633) that can be used to execute the control program in the program storage means.
- the arrangement means The control system according to configuration 2, which asks each device for the size of a storage area that can be used to execute the control program.
- [Structure 4] The control system according to configuration 1 or 2, wherein the information on the resources available for executing the control program of each device includes the time (533) available for executing the control program by the processor.
- the arrangement means The control system according to configuration 4, wherein each device is inquired about the time available for execution of the control program by the processor.
- [Structure 6] The control system according to any one of configurations 1 to 5, further comprising means (613) for measuring a communication delay time between the devices.
- [Structure 7] The control system according to any one of configurations 1 to 6, wherein the communication delay time between the devices includes a communication delay time required for communication of data exchanged with the control target.
- the plurality of devices include an information processing device (600) and one or more control devices (100) that are time-synchronized with each other.
- the execution means of the information processing device is The processor is made to execute the control program using the data received from each of the one or more control devices.
- the execution means of each of the control devices is A processor is made to execute an input / output program that transfers data exchanged with the control target to the information processing device and outputs the control data received from the information processing device to the control target.
- the control program and the input / output program are executed within a time (10) based on the time synchronization and shared between each control device and the information processing device, according to configurations 1 to 3.
- the control system according to any one.
- a setting device (500) that performs settings for a control system (1) including a control target (90) and a plurality of devices (100, 600) to be connected to the network (11).
- Each device Program storage means (119,606) for storing a control program (69) that calculates control data using data exchanged with a control target, and An execution means for causing a processor (112,603) to execute a plurality of programs including the arranged control program is provided.
- the setting device is An arrangement means (630) for arranging a plurality of control programs in one or more of the plurality of devices is provided.
- the arrangement means For each control program the control program is arranged from among the plurality of devices based on the communication delay time between each device (631) and the information of resources available for executing the control program of each device (632).
- a setting device that determines the device to be used.
- Each device Program storage means (119,606) provided in each device for storing a control program (69) that calculates control data using data exchanged with a control target, and
- Each device is provided with an execution means for causing a processor (112,603) to execute a plurality of programs including the control program to be arranged.
- the computer program is applied to the computer.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
制御プログラムを自由に配置可能な制御システムを提供する。制御システム(1)は、複数の装置の間で制御プログラムを配置する際に、各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定する。
Description
本開示は、対象を制御する制御システム、設定装置およびコンピュータプログラムに関する。
様々な生産現場において、PLC(プログラマブルロジックコントローラ)などの制御装置を用いたFA(Factory Automation)システムが広く普及している。PLCは、ロボットを含むフィールド機器などの制御対象の制御プログラムを実行する。近年は、FAシステムの規模が大きくなる傾向にあり、それに伴って、FAシステムが備えるPLCは増加する。
複数のPLCを備えるシステムとして、たとえば特開平10-164167号公報(特許文献1)は、通信装置を介して他のプログラマブルコントローラとの間でサイクリック型通信を行うプログラマブルコントローラを開示する。
従来は、複数のPLCを備えるシステムであっても、各制御プログラムを動作させるPLCは固定である。その一方で、ユーザからは、FAシステムにおいて、複数のPLCの間で制御プログラムを自由に配置したいとのニーズがある。
本開示は、上記のニーズに対応することができる制御システム、設定装置およびプログラムを提供することである。
本開示にかかる制御システムは、ネットワーク接続される制御対象および複数の装置を備える制御システムであって、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するための各装置に備えられるプログラム記憶手段と、各装置に備えられて、配置される制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、複数の制御プログラムを、複数の装置のうちの1つ以上に配置する配置手段と、を備え、配置手段は、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、各装置の制御プログラムの実行に使用可能なリソースの情報は、プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズを含む。
上述の開示によれば、各制御プログラムについて、各装置間の通信遅延時間と、各装置のプログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズに基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示おいて、配置手段は、各装置に、制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる。
上述の開示によれば、配置手段は、問い合わせることで、各装置から、制御プログラムの実行に使用可能な記憶領域のサイズを受信できる。
上述の開示において、各装置の制御プログラムの実行に使用可能なリソースの情報は、プロセッサを制御プログラムの実行に使用可能な時間を含む。
上述の開示によれば、各制御プログラムについて、各装置間の通信遅延時間と、各装置のプロセッサを制御プログラムの実行に使用可能な時間に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、配置手段は、各装置に、プロセッサによる制御プログラムの実行に使用可能な時間を問い合わせる。
上述の開示によれば、配置手段は、問い合わせることで、各装置から、プロセッサによる制御プログラムの実行に使用可能な時間を受信できる。
上述の開示において、装置間の通信遅延時間を測定する手段を、さらに備える。
上述の開示によれば、装置間の通信遅延時間を測定することができる。
上述の開示によれば、装置間の通信遅延時間を測定することができる。
上述の開示において、各装置間の通信遅延時間は、制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む。
上述の開示によれば、各制御プログラムについて、当該制御プログラムが使用するデータの通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、複数の装置は、互いに時刻同期された情報処理装置と1以上の制御装置とを含み、情報処理装置の実行手段は、各1以上の制御装置から受信するデータを用いて制御プログラムをプロセッサに実行させ、各制御装置の実行手段は、制御対象と遣り取りするデータを情報処理装置へ転送し、情報処理装置から受信する制御データを制御対象に出力する入出力プログラムを、プロセッサに実行させ、制御プログラムおよび入出力プログラムは、時刻同期に基づく時間であって各制御装置と情報処理装置との間で共有される時間内で実行される。
上述の開示によれば、互いに時刻同期される情報処理装置と制御装置を備える制御システムにおいて、情報処理装置の制御プログラム実行と、制御装置の入出力プログラムの実行とを共有される時間内で協調して実行する環境を提供することができる。ここでは、情報処理装置は自装置に配置された制御プログラムを実行するから、制御装置は制御プログラムの実行環境が要求されないので、制御装置を安価に構成することができる。
上述の開示において、配置手段は、制御システムの故障モード毎に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、配置手段は、制御システムの故障モード毎に、制御プログラムの配置先の装置を再度決定できる。すなわち、配置手段は、故障モード時に取得される各装置間の通信遅延時間と、各装置の制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
上述の開示において、配置手段は、制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する。
上述の開示によれば、配置手段は、制御プログラムの配置先として決定した装置のうちから、当該制御プログラムを実行するべき装置を決定することができる。
この開示にかかる設定装置は、ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施する設定装置である。
各装置は、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備える。設定装置は、複数の制御プログラムを、複数の装置のうちの1つ以上に配置する配置手段を備え、配置手段は、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定する。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
この開示にかかるコンピュータプログラムは、ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施するためのプログラムである。
各装置は、制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備える。コンピュータプログラムは、コンピュータに、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる。
上述の開示によれば、複数の装置の間で制御プログラムを自由に配置する際に、コンピュータプログラムが実行されることで、各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
本開示によれば、制御システムにおいて、複数の装置の間で制御プログラムを自由に配置する際に、制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、複数の装置のうちから当該制御プログラムが配置されるべき装置を決定することができる。
以下、図面を参照しつつ、本発明に従う実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
<A.適用例>
図1は、本実施の形態にかかる制御システム1の構成の一例を模式的に示す図である。図1を参照して、FAに適用され得る制御システム1では、例えば「制御装置」の一実施例であるPLC100A,100B、100Cおよび100D、「情報処理装置」の一実施例である上位装置600、「制御対象」の一実施例である複数のフィールド装置90を備える。制御装置および情報処理装置は、制御対象を制御するための制御プログラムを実行する装置の一実施例である。PLC100A,100B、100Cおよび100Dは同様の機能を備えており、これらを区別しない場合はPLC100と総称する。上位装置600には、有線または無線のネットワーク11を介してPLC100が接続されている。PLC100には、有線または無線のネットワーク11を介して1または複数のフィールド装置90が接続されている。なお、制御システム1には、フィールド装置90を接続しないPLC100が備えられてもよい。
図1は、本実施の形態にかかる制御システム1の構成の一例を模式的に示す図である。図1を参照して、FAに適用され得る制御システム1では、例えば「制御装置」の一実施例であるPLC100A,100B、100Cおよび100D、「情報処理装置」の一実施例である上位装置600、「制御対象」の一実施例である複数のフィールド装置90を備える。制御装置および情報処理装置は、制御対象を制御するための制御プログラムを実行する装置の一実施例である。PLC100A,100B、100Cおよび100Dは同様の機能を備えており、これらを区別しない場合はPLC100と総称する。上位装置600には、有線または無線のネットワーク11を介してPLC100が接続されている。PLC100には、有線または無線のネットワーク11を介して1または複数のフィールド装置90が接続されている。なお、制御システム1には、フィールド装置90を接続しないPLC100が備えられてもよい。
上位装置600は、制御システム1内のサーバ、またはクラウドサーバ等のような外部サーバ、またはPLC100に比較して高い性能を備えたPLC、または産業用のコンピュータ(所謂IPC:Industrial Personal Computer)として構成されてもよい。
ネットワーク11には、さらに、例えば、汎用のコンピュータで構成されるサポート装置500を接続することができる。サポート装置500は、制御システム1に対する設定を実施する「設定装置」の一実施例である。制御システム1では、サポート装置500は、PLC100および上位装置600から独立した装置として提供されているが、提供の態様はこれに限定されない。例えば、PLC100または上位装置600は、サポート装置500の機能を内蔵してもよい。PLC100が、サポート装置500の機能を内蔵する場合、PLC100はIPCなどの産業用のコンピュータとして構成されてもよい。
サポート装置500は、PLC100が制御対象を制御するために必要な準備を支援するための支援ツールを提供する装置である。支援ツールは、例えばUI(User Interface)によりユーザに提供される。具体的には、サポート装置500は、PLC100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、PLC100およびPLC100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムをPLC100へ送信する機能、PLC100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。サポート装置500で生成されたユーザプログラムは、PLC100または上位装置600にネットワーク11を介して転送、または記録媒体を介して転送されることで、PLC100または上位装置600に提供される。
このようなユーザプログラムは、制御対象を制御するための制御演算の命令コードを有した制御プログラムを含み、演算命令は制御対象と遣り取りするデータを用いて制御データを算出する命令を含む。ユーザプログラムは、制御対象に応じて任意に作成されるものであり、IEC61131-3に規定される言語を用いて記述されるシーケンスプログラムなどを含む。以下では、制御プログラムを含むユーザプログラムを、UPG(User Program)69と称する。
PLC100には、センサ、アクチュエータといった各種のフィールド装置90が接続される。これらのフィールド装置90は、PLC100に装着される入出力ユニットを介してPLC100に直接接続される場合もあるが、フィールド側のネットワーク11を介してPLC100に接続されることもある。フィールド装置90の各々は、製造装置または生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、およびフィールドとの間で情報を遣り取りする入出力装置などを含む。
フィールド装置90は、フィールドにおける制御対象または制御に関連する製造装置または生産ラインなどの状態を含むフィールド値を入力データとして収集する装置を含む。このようなフィールド値を収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置90は、さらに、PLC100にて生成される制御指令(指令値、制御量など)を含む制御データ、制御プログラムが算出または更新したデータなどを含むデータ(以下、「出力データ」とも称す。)に基づき、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置90は、ネットワーク11を介してPLC100との間で、入力データおよび出力データを含むデータを遣り取り(通信)する。
制御システム1では各装置は、上記の入力データおよび出力データを含む各種データを他の装置と高速に遣り取りすることができる。具体的には、PLC100と上位装置600との間のネットワークには、高速データ通信を可能にするプロトコルが適用される。また、ネットワーク11には、例えばTSN(Time-Sensitive Networking)規格に従いデータの到達時間が保証される、定周期通信を行なうバスまたはネットワークを採用され得る。例えば、ネットワーク11にはTSNの上位プロトコルとしてEtherNet/IP(登録商標)などの公知のプロトコルに係るネットワークを採用してもよい。EtherNet/IPは、汎用的なEthernet(登録商標)上に制御用プロトコルを実装した産業用オープンネットワークである。このように、ネットワーク11を介した装置間のデータの遣り取りに、統一した通信プロトコルとして、例えばTSNが採用されることで、装置間でデータを遣り取りする場合、通信プロトコルが異なるケースに比較して、通信プロトコルの変換を省略できて、その分、高速にデータ通信することができる。したがって、制御周期毎に、全装置間でデータを共有することが可能となる。
ネットワーク11を介して、PLC100とフィールド装置90との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、IOリフレッシュ72により実現される。
PLC100は、制御周期に同期してIOリフレッシュ72とUPG実行とを周期的に繰り返し実施する。IOリフレッシュ72は、フィールドとの間で、入力データおよび出力データを制御周期に同期して周期的に更新する処理である。本実施の形態にかかるPLC100においては、制御プログラムなどのUPG69によって参照される値は変数の形で管理されるので、IOリフレッシュ72は、UPG69が参照する対応する変数の値を周期的に更新する処理を意味する。
制御システム1では時刻同期が実施される。具体的には、上位装置600が備えるグランドマスタのタイマ601に、PLC100Aのタイマ101A、PLC100Bのタイマ101B、PLC100Cのタイマ101CおよびPLC100Dのタイマ101Dのそれぞれが同期する。さらに、図1では、PLC100Aに接続されるフィールド装置群3Aの各フィールド装置90はPLC100Aのタイマ101Aに時刻同期する。また、PLC100Bに接続されるフィールド装置群3Bの各フィールド装置90はPLC100Bのタイマ101Bに時刻同期する。また、PLC100Cに接続されるフィールド装置群3Cの各フィールド装置90はPLC100Cのタイマ101Cに時刻同期する。また、PLC100Dに接続されるフィールド装置群3Dの各フィールド装置90はPLC100Dのタイマ101Dに時刻同期する。これにより、ネットワーク11に接続される各装置は互いに時刻同期する。
制御システム1では、制御周期毎に全装置間でデータを共有することが可能となるデータ通信環境が提供されるので、従来のようにUPG69を装置固定で配置するのに代えて、UPG69を自由に配置することが可能となる。本実施の形態では、「UPG配置」とは、UPG69をPLC100または上位装置600にUPGをダウンロードすること、および「配置決定」とは、UPG69のダウンロード先の装置を決定する、より特定的には最適な装置を決定することを、それぞれ意味する。
サポート装置500が提供する支援ツールは、複数の制御プログラム(UPG69)を、PLC100および上位装置600を含む複数の装置のうちの1つ以上に配置するのを支援する配置ツール630を含む。配置ツール630は、UPG69を最適な装置に配置するために、UPG69について、装置間の通信遅延時間631と、各装置の当該UPG69の実行に使用可能なリソースを示すリソース量632とを取得し、取得した情報に基づき、複数の装置のうちから当該UPG69が配置されるべき最適な装置を決定する。
本実施の形態では、「通信遅延時間」は、制御プログラムが制御対象と遣り取りするデータの通信にかかる時間を含む。例えば、IOリフレッシュ72が、処理を開始してから、UPG69が参照する全ての変数に対応のデータをフィールド装置90と通信し当該変数に設定が完了するまでに要する時間を示す。本実施の形態では、UPG69は例えば製造工程毎に作成されて、各工程のUPG69が参照する変数は一般的に相違することから、配置ツール630は、各UPG69について通信遅延時間631を測定する。
また、本実施の形態では、リソース量632は、例えば「UPG69の実行に使用可能な記憶領域」のサイズを含み、この記憶領域は、装置が備えるプログラム記憶装置(記憶媒体を含む)が有する記憶領域であって、UPG69の実行に提供可能な記憶領域を意味する。この種の記憶領域は、装置が備える主記憶(内部記憶、一次記憶)装置または補助記憶(外部記憶、二次記憶)装置が有する記憶領域を含む概念であるが、本実施の形態では、「UPGの実行に使用可能な記憶領域」は、プロセッサがUPG69を実行する際に、UPG69の命令コードが展開される主記憶装置の記憶領域に対応する。主記憶装置の記憶領域のうち、UPG69を実行するための他のプログラム(OS(Operating System)を含むシステムプログラムおよびデータなど)が展開される記憶領域を除いた領域が、UPG69の実行(UPG69の展開)に使用可能な記憶領域となる。本実施の形態では、主記憶装置が有する記憶領域のサイズまたはシステムプログラム等のサイズは、装置毎に異なる可能性があることから、配置ツール630は、各UPG69について、装置毎に、当該UPG69の実行に使用可能な記憶領域サイズ633(以下、記憶領域サイズ633と呼ぶ)を測定する。
このように配置ツール630は、UPG69について、「通信遅延時間631」および各装置のUPG69の実行に使用可能なリソース量632に基づき、UPG69の配置先の装置を最適となるように決定することができる。
以下、本実施の形態のより具体的な応用例について説明する。
<B.各装置の構成>
制御システム1が備える各装置の構成を説明する。
<B.各装置の構成>
制御システム1が備える各装置の構成を説明する。
(b1.PLC100の構成)
図2は、本実施の形態にかかるPLC100の要部構成を示す模式図である。図2を参照して、PLC100は、演算処理部110、通信回路130、DMA(Direct Memory Access)コントローラ140、高精度のタイマ160、通信コントローラ107、ネットワーク11を接続する通信ポート136および137、およびメモリカードインターフェイス108を含む。タイマ160は、タイマ101A、101B、101Cおよび101Dに対応する。
図2は、本実施の形態にかかるPLC100の要部構成を示す模式図である。図2を参照して、PLC100は、演算処理部110、通信回路130、DMA(Direct Memory Access)コントローラ140、高精度のタイマ160、通信コントローラ107、ネットワーク11を接続する通信ポート136および137、およびメモリカードインターフェイス108を含む。タイマ160は、タイマ101A、101B、101Cおよび101Dに対応する。
演算処理部110は、プロセッサ112、主記憶装置の一例である記憶部114および補助記憶装置の一例であるストレージ119を含む。主記憶装置は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。補助記憶装置は、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
説明の便宜上、PLC100には、1つのプロセッサ112のみを備えるが、複数のプロセッサが実装されてもよい。なお、各プロセッサは、複数のコアを有していてもよい。演算処理部110においては、プロセッサ112が1または複数のタスクを周期的に実行する。演算処理部110で複数のタスクが実行される場合には、それらの複数のタスクに対して、互いに異なる優先度が設定されてもよい。
プロセッサ112は、通信回路130の後述するバッファ132に格納された後述する通信フレーム20(例えば、入力データ134、出力データ135)を記憶部114に転送する。記憶部114は、プロセッサ112でのプログラムの実行に必要なワーク領域を提供する。
ストレージ119は、周辺処理プログラム120、IOリフレッシュプログラム125、システムプログラム122、スケジューラ123、測定プログラム126、1または複数のUPG69を含むUPGライブラリ170、および時刻同期を実施するための時刻同期プログラム121を含む通信プログラム127などを格納する。
システムプログラム122は、OS(Operating System)および関数などのライブラリを含む。IOリフレッシュプログラム125は、実行されるとIOリフレッシュ72を実施する。IOリフレッシュ72では、通信回路130を介して受信する通信フレーム20に含まれるフィールド値(入力データ)を演算処理部110に送信する。また、IOリフレッシュプログラム125は、PLC100で算出される制御データ(出力データ)をネットワーク11上に送信する。このように、IOリフレッシュプログラム125は、入力データおよび出力データの少なくともいずれかを転送するIOリフレッシュ72を実現する。
UPG69は、制御対象を制御するために、記憶部114の入力データ134に基づく演算を実施するための制御演算プログラムを含む。制御演算は、シーケンス制御および例えばロボットの挙動を制御するモーション制御の演算を含む。UPG69の制御演算処理による制御データなどの算出値は、出力データ135として記憶部114に格納される。
通信プログラム127は、記憶部114の出力データ135を用いて通信フレーム20を生成するとともに、通信フレーム20を送受信するように通信回路130を制御する。周辺処理プログラム120は、UPG69により実施される制御演算処理などとは異なる処理であって、制御演算処理の周辺で実施される処理であり、例えばネットワーク11を介して遣り取りされる通信フレーム20のロギング処理などを含む。
スケジューラ123は、UPG69を含む複数のプログラムをプロセッサ112に実行させる「実行手段」の一実施例である。スケジューラ123は、PLC100のプロセスまたはタスクなどに対して、優先度に従いプロセッサ112の使用時間などリソース割当てや実行タイミングなどを管理するプログラムである。このような、プロセスまたはタスクは、周辺処理プログラム120、UPG69、IOリフレッシュプログラム125、時刻同期プログラム121、通信プログラム127などが、プロセッサ112により実行されることにより生成され得るプロセスまたはタスクが含まれる。スケジューラ123は、時刻同期したタイマ160に従い、例えば予め定められた制御周期に基づく周期で各プログラムのプロセッサ112による実行タイミングを調整する。これにより、PLC100は、UPG69の制御演算処理およびIOリフレッシュ72を、他の装置との間で同期した時刻に基づく周期でサイクリックに実施することができる。
測定プログラム126は、主に、配置決定のための各種ファクタを測定(算出)するためのプログラムを含む。具体的には、測定プログラム126は、通信遅延時間631を測定するための遅延時間測定プログラム86およびUPG69の実行に使用可能なリソース量632を測定(算出)するリソース測定プログラム89を含む。リソース測定プログラム89は、記憶領域サイズ633を算出するメモリサイズ算出プログラム87およびプロセッサ112がUPG69を実行開始してから完了するまでに要する時間634(以下、UPG実行時間634とも称する)を測定する実行時間測定プログラム88を含む。
通信コントローラ107は、ネットワーク11または別の通信路を介してUPG69を受信する。メモリカードインターフェイス108は、メモリカード116を脱着可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムまたはデータなど)を読出すことが可能になっている。UPG69は、メモリカード116からストレージ119にロードされてもよい。
通信回路130は、ネットワーク11を物理的に接続する通信ポート136および137を接続する。限定されないが、例えば通信ポート136は、他のPLC100側に繋がるネットワーク11が接続され、通信ポート137はフィールド装置90側に繋がるネットワーク11が接続される。通信回路130は、通信ポート136,137を介して他の装置と通信フレーム20を遣り取りする。通信回路130は、ネットワーク11を介して送受信される通信フレーム20を一時的に格納するバッファ132を備える。バッファ132に一時的に格納される通信フレーム20は、例えば、入力データ134および出力データ135を含む。
通信回路130は通信フレーム20の送受信を例えば次のように実施する。通信回路130は、プロセッサ112の指令に従い、DMAコントローラ140を介した記憶部114からの出力データ135に基づく通信フレーム20をコピーして、コピーを出力データ135としてバッファ132に格納するとともに、通信フレーム20をネットワーク11上に送信する。
また、通信回路130は、プロセッサ112の指令に従い、ネットワーク11から到来(受信)する通信フレーム20をコピーして、コピーを入力データ134としてバッファ132に格納するとともに、通信フレーム20を演算処理部110へ出力する。この通信フレーム20は、入力データとして記憶部114に格納される。
記憶部114には、送受信される通信フレーム20のデータが、制御周期よりも長い期間に亘り蓄積されてもよく、直近の制御周期の通信フレーム20のデータのみが蓄積されるとしてもよい。
本実施の形態において、PLC100による「IOリフレッシュ72」は、出力データ135(通信フレーム20)の他の装置への送信、および他の装置からの入力データ134の受信のうちの少なくとも一方を含む。「IOリフレッシュ72」では、入力データ134はフィールド装置90により収集されて転送されるフィールド値の通信フレーム20に対応し、出力データ135は、PLC100のUPG69の制御演算処理により算出された制御データの通信フレーム20に対応する。
DMAコントローラ140は、演算処理部110および通信回路130に接続され、演算処理部110と通信回路130との間で、データアクセスを高速化する機能を備える。これにより、IOリフレッシュ処理時間の短縮と送信タイミングのジッタの低減が可能となる。
図2に示す構成においては、説明の便宜上、演算処理部110、通信回路130およびDMAコントローラ140を区別した構成を描いているが、これに限られることなく任意の実装形態を採用できる。例えば、演算処理部110の全部または一部と通信回路130の全部または一部とを同一のチップ上に実装したSoC(System on Chip)で構成してもよい。あるいは、演算処理部110のプロセッサ112とDMAコントローラ140の主要機能とを同一のチップ上に実装したSoCを用いてもよい。これらの実装形態については、適宜選択可能である。
(b2.フィールド装置90のハードウェア構成)
図3は、本発明の実施の形態に係るフィールド装置90の要部構成を模式的に示す図である。図3を参照して、フィールド装置90は、プロセッサ91、メモリ92、サーボモータなどを接続する通信I/F(Interface)93、ネットワーク11を接続する通信回路94、PLC100のタイマ160と同様の構成を備えるタイマ99、およびメモリカード96が脱着可能に装着されるメモリカードインターフェイス95を備える。このような機器はメモリカード96を取り扱う機能および回路を備えないこともあり得る。したがって、フィールド装置90は、メモリカード96に関連した機能および回路を備えない装置も含み得る。
図3は、本発明の実施の形態に係るフィールド装置90の要部構成を模式的に示す図である。図3を参照して、フィールド装置90は、プロセッサ91、メモリ92、サーボモータなどを接続する通信I/F(Interface)93、ネットワーク11を接続する通信回路94、PLC100のタイマ160と同様の構成を備えるタイマ99、およびメモリカード96が脱着可能に装着されるメモリカードインターフェイス95を備える。このような機器はメモリカード96を取り扱う機能および回路を備えないこともあり得る。したがって、フィールド装置90は、メモリカード96に関連した機能および回路を備えない装置も含み得る。
通信I/F93は、プロセッサ91からの指令に従い、制御対象からのフィールド値を受信するとともに、プロセッサ91からの制御データを制御対象に送信する。これにより、制御対象は、指令値,制御量に従い制御されて、その結果であるフィールド値を出力する。
通信回路94は、ネットワーク11を物理的に接続する通信ポート971および972を備える。通信回路94は、通信ポート971,972を介して他の装置とデータを遣り取りする。限定されないが、通信ポート971はPLC100側に繋がるネットワーク11を接続し、通信ポート972はフィールド装置90側に繋がるネットワーク11を接続する。
また、通信回路94は、ネットワーク11を介して送受信されるデータを一時的に格納するバッファ941を備える。バッファ941には、送受信されるデータが例えば、入力データ944または出力データ943として一時的に格納される。
メモリ92は、フラッシュメモリ、ハードディスク、DRAMまたはSRAMなどを備えて構成され、プロセッサ91でのプログラムの実行に必要なワーク領域を提供する。メモリ92は、システムプログラム81、フィールド装置90に接続される制御対象(サーボモータ、ロボット)などを動作させるためのプログラムを含むアプリケーションプログラム82、通信プログラム83、プログラムを周期的に実行させるためのスケジューラ84、出力データ943および入力データ944などを格納する。メモリ92には、PLC100を経由してサポート装置500から、またはメモリカードインターフェイス95を介してメモリカード96からプログラムまたはデータが格納され得る。
通信プログラム83は、通信I/F93および通信回路94を制御するプログラムである。通信プログラム83は、時刻同期を実施するための時刻同期プログラム831を含む。
通信回路94は、プロセッサ91の指令に従い、メモリ92の出力データ943をコピーして、コピーを出力データ943としてバッファ941に格納するとともに、当該出力データ943をネットワーク11上に送信する。また、通信回路94は、プロセッサ91の指令に従い、ネットワーク11から到来するデータを受信し、当該受信データをコピーし、コピーを入力データ944としてバッファ941に格納する。また、プロセッサ91は、当該入力データ944をメモリ92に格納する。
(b3.上位装置600のハードウェア構成)
図4は、本実施の形態にかかる上位装置600の構成例を示す図である。上位装置600は、汎用のコンピュータの構成を備える。図4を参照して、上位装置600は、タイマ601、CPUまたはMPUなどのプロセッサ603、記憶装置、PLC100を含む他の装置との間でデータを遣り取りするためのネットワークコントローラ620を備える。上位装置600は、さらに、メモリカード622が着脱自在に装着されて、装着されたメモリカード622を読み書きするメモリカードインターフェイス621を備える。
図4は、本実施の形態にかかる上位装置600の構成例を示す図である。上位装置600は、汎用のコンピュータの構成を備える。図4を参照して、上位装置600は、タイマ601、CPUまたはMPUなどのプロセッサ603、記憶装置、PLC100を含む他の装置との間でデータを遣り取りするためのネットワークコントローラ620を備える。上位装置600は、さらに、メモリカード622が着脱自在に装着されて、装着されたメモリカード622を読み書きするメモリカードインターフェイス621を備える。
ネットワークコントローラ620は、例えばNICを備えて構成されてもよい。これらのコンポーネントは、内部バス602を介して互いにデータ通信可能に接続されている。記憶装置は、ROM(Read Only Memory)604、RAM(Random Access Memory)605およびHDD(Hard Disk Drive)606を含む。これら記憶装置は、補助記憶装置および主記憶装置を構成する。補助記憶装置は、例えば、HDD606またはSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。主記憶装置は、RAM605に含まれるDRAMまたはSRAMなどの揮発性記憶装置などで構成される。プロセッサ603は、マルチプロセッサを備えて、UPG69を並列に実行できるよう構成されてもよい。
HDD606は、OS(Operating System)を含むシステムプログラム701、サーバプログラム68、1つ以上のUPG69を格納するUPGライブラリ171、時刻同期を実施するための時刻同期プログラム67を含む通信プログラム64、スケジューラ63、およびUPG69の制御演算とは異なる他の処理を実施するための他のプログラムを格納する。さらに、HDD606は、図2のPLC100と同様に、遅延時間測定プログラム86およびリソース測定プログラム89を含む測定プログラム126を格納する。リソース測定プログラム89は、メモリサイズ算出プログラム87および実行時間測定プログラム88を含む。プロセッサ603は、HDD606のプログラムをRAM605に読出し(展開して)実行する。
スケジューラ63は、UPG69を含む複数のプログラムをプロセッサ603に実行させる「実行手段」の一実施例である。スケジューラ63は、上位装置600のプロセスまたはタスクなどに対して、優先度に従いプロセッサ603の使用時間などリソース割当てや実行タイミングなどを管理するプログラムである。このような、プロセスまたはタスクは、HDD605の各種プログラムが、プロセッサ603により実行されることにより生成され得るプロセスまたはタスクが含まれる。スケジューラ63は、時刻同期したタイマ601に従い、例えば予め定められた制御周期に基づく周期で各プログラムのプロセッサ603による実行タイミングを調整することができる。これにより、上位装置600は、UPG69の制御演算処理を、他の装置との間で同期した時刻に基づく周期でサイクリックに実施することができる。
RAM605は、後述する入力データ(送信)182を格納する受信用データ領域661と、後述する出力データ(受信)183を格納する送信用データ領域662を含む。入力データ(送信)182と出力データ(受信)183は、データの送信元または宛先であるPLC100の識別子、変数名および当該変数に対応するデータとからなる。プロセッサ603は、ネットワークコントローラ620を介してPLC100から受信する入力データ(送信)182を受信用データ領域661に格納する。また、プロセッサ603は、受信用データ領域661の入力データ(送信)182を用いた制御演算処理を実行し、算出値である出力データ(受信)183を、送信用データ領域662に格納する。入力データ(送信)182の受信と出力データ(受信)183の送信は、プロセッサ603が、通信プログラム64を実行することにより実現される。
(b4.サポート装置500の構成)
図5は、本実施の形態にかかるサポート装置500の構成を概略的に示す図である。図5を参照して、サポート装置500は、CPU(Central Processing Unit)502とプログラムおよびデータを格納する格納部を備えて、プログラムに従って動作するコンピュータシステムである。格納部は、ROM(Read Only Memory)503、RAM(Random Access Memory)504およびHDD(Hard Disk Drive)505を含む。サポート装置500は、さらに、通信コントローラ507およびI/O(Input/Output)インターフェイス508を含む。サポート装置500は、さらに、キーボード509およびディスプレイ510を含む。キーボード509は、ユーザからのサポート装置500に対する指示を含む入力を受付ける。当該入力を受付けるために、サポート装置500は、マウス等の他のデバイスを含んでもよい。ディスプレイ510は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)を含み、サポート装置500から出力される映像信号または画像信号に従う映像または画像を表示する。サポート装置500は、外部の記憶媒体501を脱着自在に装着し、装着された記憶媒体501にプログラムおよび/またはデータを読み書きするR/W(リーダライタ)デバイス506を備える。
図5は、本実施の形態にかかるサポート装置500の構成を概略的に示す図である。図5を参照して、サポート装置500は、CPU(Central Processing Unit)502とプログラムおよびデータを格納する格納部を備えて、プログラムに従って動作するコンピュータシステムである。格納部は、ROM(Read Only Memory)503、RAM(Random Access Memory)504およびHDD(Hard Disk Drive)505を含む。サポート装置500は、さらに、通信コントローラ507およびI/O(Input/Output)インターフェイス508を含む。サポート装置500は、さらに、キーボード509およびディスプレイ510を含む。キーボード509は、ユーザからのサポート装置500に対する指示を含む入力を受付ける。当該入力を受付けるために、サポート装置500は、マウス等の他のデバイスを含んでもよい。ディスプレイ510は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)を含み、サポート装置500から出力される映像信号または画像信号に従う映像または画像を表示する。サポート装置500は、外部の記憶媒体501を脱着自在に装着し、装着された記憶媒体501にプログラムおよび/またはデータを読み書きするR/W(リーダライタ)デバイス506を備える。
通信コントローラ507は、ネットワーク11を介したサポート装置500と外部デバイスとの通信を制御する。通信コントローラ507は、例えばNIC(Network Interface Card)を含んで構成される。I/Oインターフェイス508は、CPU502とキーボード509およびディスプレイ510との間のデータの遣り取りを制御する。
HDD505は、OSを含むシステムプログラム70、UPG69を生成するためのUPG生成プログラム71、生成された1または複数のUPG69を格納するUPGライブラリ172、配置ツール630を実現するための配置プログラム61、他の装置と通信するための通信プログラム611、および配置ツール630が決定したUPG配置を示すUPG配置情報627を含む。配置プログラム61は、UPG69を配置するための必要なリソース量632を取得するための必要リソース取得プログラム629および通信遅延時間631を取得するための遅延時間取得プログラム163を含む。必要リソース取得プログラム629は、各装置から記憶領域サイズ633を取得するためのメモリサイズ取得プログラム162および各装置からUPG実行時間634を取得するための実行時間取得プログラム262を含む。配置ツール630は、UPG配置情報627をI/Oインターフェイス508を介してディスプレイ510に表示させる。
UPG生成プログラム71は、キーボード509から受け付けるユーザ操作に従いUPG69を編集(生成)するエディタ、編集されたUPG69をコンパイルするコンパイラ、UPG69を実行可能な形式に変換するビルダなどを含む。なお、ビルダが、コンパイルの機能を含んでもよい。
<C.通信フレーム20の構成>
本実施の形態では、ネットワーク11上のデータ転送は、例えば通信フレームを利用して実施される。図6は、本実施の形態にかかる通信フレーム20の構成の一例を模式的に示す図である。図6は、基本的な通信フレーム20の一例を示す。
本実施の形態では、ネットワーク11上のデータ転送は、例えば通信フレームを利用して実施される。図6は、本実施の形態にかかる通信フレーム20の構成の一例を模式的に示す図である。図6は、基本的な通信フレーム20の一例を示す。
図6を参照して、基本的な通信フレーム20は、プリアンブル21を格納する領域、フレームの宛先22を格納する領域、フレームの送信元23を格納する領域、タグ24の領域、ネットワークのタイプ25を格納する領域、および誤り訂正情報27のための領域を含み、さらに、転送されるべきデータ本体であるペイロード26を格納する領域を含む。通信フレーム20の宛先22および送信元23は、各装置を一意に識別する情報、例えばMAC(Media Access Control address)を含む。図6の基本的な通信フレーム20の場合は、ペイロード26は、例えばフィールド値に相当する入力データ134,944または出力データ135,943を含む。
宛先22の領域は、通信フレーム20の転送を管理するためのストリームID(Identifier)29を含む。図7は、本実施の形態にかかるストリームID29を説明するための図である。本実施の形態では、ネットワーク11上を転送される通信フレーム20はフロー42の単位で管理される。図7に示すように、ネットワーク11に接続される装置は、通信フレーム20の送信元(TALKER)または送信先(LISTENER)となり得る。各フロー42は、TALKERの識別子とLISTENERの識別子の組で規定されるストリームID29が割当てられる。
本実施の形態では、ペイロード26が出力データの制御データである場合は、TALKERは、ペイロード26(制御データ)の送信元となる装置の識別子が割り当てられて、LISTENERには送信先装置(フィールド装置90)のMACアドレスが割り当てられる。本実施の形態では、ペイロード26が入力データのフィールド値である場合は、TALKERは、送信元の装置のMACアドレスが割り当てられて、LISTENERには送信先装置のMACアドレスが割り当てられる。したがって、各装置は、遣り取りする各通信フレーム20を、そのストリームID29に基き一意に識別することが可能となる。
(c1.通信フレーム20のペイロード)
例えば、図6の通信フレーム20には、ペイロード26として、例えば制御系データが格納され得る。ペイロード26の領域は、制御系データのうちのフィールド値を格納する領域と、制御系データのうちの制御データを格納する領域とを備える。
例えば、図6の通信フレーム20には、ペイロード26として、例えば制御系データが格納され得る。ペイロード26の領域は、制御系データのうちのフィールド値を格納する領域と、制御系データのうちの制御データを格納する領域とを備える。
各フィールド装置90は、ペイロード26の領域を読み書きする場合、例えば、当該装置に個別に割当てられているオフセット(例えば、通信フレーム20の先頭からのオフセット)に基づいたペイロード26の領域内の位置を特定し、特定した位置でデータを読み書きする。具体的には、通信プログラム83は、到来した通信フレーム20のペイロード26の領域の自装置のオフセットに基く位置から、制御データ(入力データ944または出力データ135)を読出し、また、送信すべき通信フレーム20のペイロード26の領域のオフセットに基づく位置にフィールド値(出力データ943または入力データ134)を書込む。
一方、PLC100は各フィールド装置90に割当てられたオフセット情報を記憶している。したがって、PLC100は、このオフセット情報に基き、到来する通信フレーム20のペイロード26の領域内から各フィールド装置90のフィールド値(出力データ943または入力データ134)を読出し、また、このオフセット情報に基き、送信すべき通信フレーム20のペイロード26の領域内の各フィールド装置90のオフセット位置に、制御データ(入力データ944または出力データ135)を書込むことができる。
これにより、PLC100は、通信フレーム20のペイロード26の領域に各フィールド装置90の制御系データを読み書きでき、また、各フィールド装置90は通信フレーム20のペイロード26の領域に自装置の制御系データを読み書きすることができる。
<D.装置のソフトウェア構成>
本発明の実施の形態にかかる各装置におけるソフトウェア構成を説明する。
本発明の実施の形態にかかる各装置におけるソフトウェア構成を説明する。
(d1.PLC100または上位装置600の構成)
図8は、本実施の形態にかかる装置のソフトウェア構成の一例を模式的に示すブロック図である。図8の構成は、PLC100および上位装置600に共通であるので、ここでは、代表してPLC100について説明し、上位装置600の構成の説明は繰返さない。
図8は、本実施の形態にかかる装置のソフトウェア構成の一例を模式的に示すブロック図である。図8の構成は、PLC100および上位装置600に共通であるので、ここでは、代表してPLC100について説明し、上位装置600の構成の説明は繰返さない。
図8を参照して、PLC100は、図2に示す各プログラムが実行されることで、当該プログラムに対応した処理部が実現される。具体的には、PLC100は、サポート装置500で生成されたUPG69を格納するためのUPGライブラリ170(上位装置600のUPGライブラリ171に対応)、スケジューラ123(上位装置600のスケジューラ63に対応)に対応するスケジューリング処理部610および通信プログラム127(上位装置600の通信プログラム64に対応)の通信処理部615を含む。PLC100は、さらに、メモリサイズ算出プログラム87に対応する確保メモリ算出処理部612、遅延時間測定プログラム86に対応の遅延測定処理部613および実行時間測定プログラム88に対応のUPG実行時間計測処理部614を含む。
スケジューリング処理部610は、プロセッサにプログラムを実行させるために、プロセッサの空き時間を、UPG69を含む各種アプリケーションプログラムに周期的に割当てることで、各プログラムの実行タイミングを調整する。
通信処理部615は、通信フレーム20を送受信する送信処理部616および受信処理部617、ならびに時刻同期プログラム121(上位装置600に時刻同期プログラム67に対応)の時刻同期処理部618を含む。
(d2.サポート装置500の構成)
図9は、本実施の形態にかかるサポート装置500のソフトウェア構成の一例を模式的に示すブロック図である。
図9は、本実施の形態にかかるサポート装置500のソフトウェア構成の一例を模式的に示すブロック図である。
図9を参照して、サポート装置500は、図5に示す各プログラムが実行されることで、当該プログラムに対応した処理部が実現される。具体的には、サポート装置500は、UI520、UPGライブラリ172、通信プログラム611に対応の通信処理部526、および配置ツール630を提供するための各種プログラムおよびデータを含む。通信処理部526は、外部装置と情報を送受信する送信処理部527および受信処理部528を含む。
UI520は、UPG生成プログラム71が実行されることで提供されるUPGプログラム生成ツール、および配置プログラム61が実行されることで提供される配置ツール630を含む支援ツールに対するユーザ操作を受付ける。UPGプログラム生成ツールにより生成されたUPG69はUPGライブラリ172に格納される。
サポート装置500は、さらに、配置ツール630を提供するために、必要リソース取得プログラム629に対応のUPG必要リソース算出処理部524、メモリサイズ取得プログラム162に対応のUPG実行メモリ確認処理部522、実行時間取得プログラム262に対応の実行時間処理部529、遅延時間取得プログラム163に対応の遅延算出処理部525、およびこれら処理部により算出(測定)された情報に基き配置決定を実施し、UPG配置情報627を出力する決定処理部523を含む。
さらに、サポート装置500は、配置ツール630の各処理部により取得される情報をRAM504の記憶部に格納する。取得される情報は、各UPG69について取得される情報であって、UPG必要リソース算出処理部524により算出されるUPG必要メモリ530、各装置から受信する当該装置の確保メモリ531、遅延算出処理部525により算出される全通信経路の遅延時間532、および各UPGの実行時間533を含む。各UPGの実行時間533は、実行時間処理部529が各装置から受信する時間であって、各装置がUPGを実行するためにプロセッサを使用可能な時間を示す。UPG必要メモリ530、各装置の確保メモリ531、全通信経路の遅延時間532、および各UPGの実行時間533の詳細は後述する。
<E.協調制御>
本実施の形態にかかる制御システム1は、上位装置600とPLC100とが、協調しながらフィールド装置90を制御する環境を提供する。この協調制御を図10と図11を参照して説明する。
本実施の形態にかかる制御システム1は、上位装置600とPLC100とが、協調しながらフィールド装置90を制御する環境を提供する。この協調制御を図10と図11を参照して説明する。
図10は、本実施の形態にかかる協調制御を説明するための制御システム1の構成を模式的に示す図である。図10を参照して、制御システム1では上位装置600には2台のPLC100(例えばPLC100AとPLC100B)が接続されている。なお、上位装置600に接続されるPLC100の台数は、2台に限定されず、3台以上であってもよい。
図11は、図10の制御システム1のタイミングチャートの一例を模式的に示す図である。なお、図11では、フィールド装置90の処理は略されている。PLC100では、IOリフレッシュ72、上位通信73および周辺処理74が順に実行される。図11の上位装置600は、PLC100Aからの入力データ(送信)182に基づく制御演算処理のためのUPG(1)と、PLC100Bからの入力データ(送信)182に基づく制御演算処理のためのUPG(2)とを実行する。UPG(1)とUPG(2)は、同期した時刻に基づく共通のトリガに応じて同時に実行開始可能とされる。IOリフレッシュ72は、PLC100が制御対象のフィールド装置90からの入力データ(フィールド値)を上位装置600へ転送し、上位装置から受信する制御データを制御対象のフィールド装置90に出力する入出力プログラムとしての機能を提供する。
図11を参照して、制御周期10の開始に同期してPLC100A,100BはIOリフレッシュ72を開始するが、各PLC100に接続されるフィールド装置90の台数、または収集するべき入力変数の数、またはネットワーク11の負荷等の差異に起因して、上位通信73を開始できる時間(すなわち、IOリフレッシュ72によりフィールド値である入力データ(送信)182の収集を完了する時間)に差が生じ得る。このように、上位通信73を開始できる時間に差が生じることに伴い、上位装置600では、PLC100Aから入力データ(送信)182を受信し領域661に格納するデータ格納時間12と、PLC100Bから入力データ(送信)182を受信し領域661に格納するためのデータ格納時間12とは一致せず、ずれることになる。上位装置600では、この「ずれ」は待ち時間14で調整される。例えば、上位装置600は、PLC100Bの入力データ(送信)182のデータ格納完了後の待ち時間14が経過したときの時間15において、上位装置600はUPG(1)とUPG(2)を同時(並列)に実行開始する。
UPG(1)とUPG(2)の並列実行においては、UPG(2)は、UPG(1)の算出値を用いて実行されてもよい。これにより、例えば、PLC100Aに接続されたサーボ装置(フィールド装置90)からの位置データ(出力データ)に基づく算出値を、UPG(2)の制御演算(例えば、PLC100Bに接続されたサーボ装置(フィールド装置90)の指令値を決定するために用いることができる。
並列実行されたUPG(1)とUPG(2)の実行結果である制御演算の算出値である制御データ(出力データ(受信)183)は領域662にデータ格納時間13で格納される。領域662の出力データ(受信)183は、PLC100A,100Bにそれぞれ送信される。PLC100A,100Bは、それぞれ、次の制御周期10が開始される前に、上位装置600から出力データ(受信)183を受信完了する。
図10と図11で示されるように、制御システム1では、互いに時刻同期される上位装置600とPLC100を備える制御システム1において、上位装置600のUPG69の制御演算処理と、PLC100の入出力処理(IOリフレッシュ72)とを共有される時間内で協調して実行する環境が提供される。ここでは、PLC100は制御演算処理の実行環境を備える必要はないので、PLC100は制御演算処理に要求される処理量または処理時間の制約を受けずに(独立に)フィールド装置90を制御することができる。
<F.配置決定>
図12は、本実施に形態にかかる配置決定のパターンを表形式で模式的に示す図である。配置決定のパターンは、全通信経路の遅延時間532および各装置においてUPG実行のために使用可能なリソースに基づく条件と、制御システム1の正常時または異常時のユースケースの組合せにより分類された、例えば、パターン1~6を示す。図12の条件は、上位装置600のリソース(記憶領域サイズ633およびUPG実行時間634)がUPG69を実行するのに十分であるとした場合に、PLC100で使用可能なリソースと通信遅延時間631に基づく条件を示す。
図12は、本実施に形態にかかる配置決定のパターンを表形式で模式的に示す図である。配置決定のパターンは、全通信経路の遅延時間532および各装置においてUPG実行のために使用可能なリソースに基づく条件と、制御システム1の正常時または異常時のユースケースの組合せにより分類された、例えば、パターン1~6を示す。図12の条件は、上位装置600のリソース(記憶領域サイズ633およびUPG実行時間634)がUPG69を実行するのに十分であるとした場合に、PLC100で使用可能なリソースと通信遅延時間631に基づく条件を示す。
図12を参照して、上記の組合せは、分類(1)~分類(3)に大別される。分類(1)は、各PLC100がUPG69の実行に使用可能なリソースを有し、且つ制御システム1に上位装置600が接続される場合にあたる。分類(2)は、各PLC100はUPG69の実行に使用可能なリソースはなく、且つ制御システム1に上位装置600が接続される場合にあたる。分類(3)は、各PLC100はUPG69の実行に使用可能なリソースはなく、且つ制御システム1に上位装置600が接続されない場合にあたる。
分類(1)は、上位装置600の通信遅延時間631が各PLC100の通信遅延時間631よりも小さい場合において、正常時のパターン2と異常時のパターン3を有し、各PLC100の通信遅延時間631が上位装置600の通信遅延時間631がより小さい場合において、異常時のパターン4とパターン5を有する。また、分類(2)は、異常時のパターン6を有し、分類(3)は正常時のパターン1を有する。
代表してパターン1~6のそれぞれにおける配置決定を説明するが、本実施の形態では上位装置600はPLC100と通信可能であり、フィールド装置90とは通信しない。また、制御システム1はPLC100間の通信経路は直接通信する経路と上位装置600を経由する経路を含み、両方の経路が正常である場合は、PLC100は直接通信する経路で他のPLC100と通信する。なお、各パターンでは、配置決定の対象となる複数のUPG69が有る場合は、全てのUPG69について同一パターンのもとで配置決定が実施される。
各パターンを説明するために、まず、各UPG69について、各装置の当該UPG69の実行に使用可能なリソースを確認する処理と、装置間の通信遅延時間を確認する処理とを説明する。
(f1.リソース確認処理)
図13は、本実施の形態にかかるUPG必要リソース算出処理部524の処理の一例を示すフローチャートである。図14は、本実施の形態にかかるUPG付属情報310の一例を模式的に示す図である。図15は、本実施の形態にかかるリソース確認情報320の一例を模式的に示す図である。図16は、本実施の形態にかかる実行時間と実行制限時間の関係を模式的に示す図である。
図13は、本実施の形態にかかるUPG必要リソース算出処理部524の処理の一例を示すフローチャートである。図14は、本実施の形態にかかるUPG付属情報310の一例を模式的に示す図である。図15は、本実施の形態にかかるリソース確認情報320の一例を模式的に示す図である。図16は、本実施の形態にかかる実行時間と実行制限時間の関係を模式的に示す図である。
図13を参照して、配置ツール630は、UI520を介して、全工程で実施されるべきUPG69を指定する情報、各UPG69に対して設定される実行制限時間313、および全てのUPG69の実行制限時間315を受付ける(ステップT1)。
本実施の形態では、UPG69の実行制限時間313は、当該UPG69の実行にかかる実行時間と通信遅延時間との合計に対応する上限値である。また、全てのUPG69の実行制限時間315は、各UPG69の上記の合計の総和の上限値であって、例えば制御周期に基づいた値である。図16では、図14のUPG付属情報310を有するUPG(1)、UPG(2)およびUPG(3)がPLC(3)で実行された場合に、各UPG69について計測されたUPG実行時間(図16の実線矢印で示す時間)と当該UPGの実行制限時間313(図16の破線矢印で示す時間)とが関連付けて示される。実線矢印および破線矢印の上に示される数値は、時間を示す値である。また、図16の最下段では、UPG(1)、UPG(2)およびUPG(3)についての上記の総和は、ステップT1でユーザが設定した全てのUPGの実行制限時間315を超えていないことが示されている。
UPG必要リソース算出処理部524は、ステップT1で指定されたUPG69をUPGライブラリ172において特定し、特定したUPG69を実行するのに必要なメモリサイズであるUPG必要メモリ530を算出する(ステップT3)。UPG必要リソース算出処理部524は、例えば、UPG69の実行時にUPG69のオブジェクトコードが主記憶装置に展開されるとした場合、このオブジェクトコードのサイズからUPG必要メモリ530を算出することができる。なお、必要なメモリサイズの算出方法は、これに限定されない。
配置ツール630は、ステップT1で受付けた情報およびステップT3で算出されたUPG必要メモリ530から、図14のUPG付属情報310を作成し、RAM504に格納する。本実施の形態では、図14に示すように、UPG69として、各工程に対応したUPG(1)、UPG(2)およびUPG(3)が指定されている。
UPG実行メモリ確認処理部522は、各装置に対してUPG69を実行するために確保できるメモリサイズ、すなわち使用可能な記憶領域のサイズを問合せる(ステップT5)。UPG実行メモリ確認処理部522は、問合せを、通信処理部526を介して各装置(PLC100および上位装置600)に送信する。
各装置では、確保メモリ算出処理部612は、通信処理部615を介して、サポート装置500からの問合せを受信し、問合せに従い、主記憶装置においてUPG69を実行するために確保できるメモリサイズを算出し、算出したメモリサイズを応答としてサポート装置500に送信する。ステップT5の問合わせおよびステップT7の応答は、UPG(1)~(3)のそれぞれについて実施されて、UPG実行メモリ確認処理部522は、各装置から受信した応答である確保できるメモリサイズを、装置の確保メモリ531と決定する。
UPG実行メモリ確認処理部522は、各装置から受信した確保メモリ531が示すメモリサイズに基き、UPG(1)~UPG(3)の全てを実行できる装置があるかを判定する(ステップT9)。具体的には、UPG実行メモリ確認処理部522は、UPG付属情報310のUPG(1)~(3)のUPG必要メモリ530が示すメモリサイズのトータル値を装置の確保メモリ531が示すメモリサイズと比較し、比較結果に基き、(トータル値<確保メモリ531が示すメモリサイズ)の条件を満たす装置があるかを判定する。
UPG実行メモリ確認処理部522は、上記の条件を満たす装置はないと判定すると(ステップT9でNO)、UI520を介してメモリ不足のエラー通知を出力する(ステップT11)が、上記の条件を満たす装置があると判定すると(ステップT9でYES)、ステップT13に移行する。
ステップT13以降では、実行時間処理部529は、各装置におけるUPG69の実行時間を問い合わせて取得する。具体的には、実行時間処理部529は、UPGライブラリ172のUPG(1)~(3)を、通信処理部526を介して、上記の条件を満たすと判定された各装置にダウンロード(図中は、DLと略されている)して実行時間を問い合わせる(ステップT13)。
装置では、問合せに応じて、UPG実行時間計測処理部614は、サポート装置500からダウンロードされたUPG(1)~(3)を実行し、その実行時間であるUPG実行時間533を測定し、測定したUPG実行時間533をサポート装置500に送信する(ステップT15)。その後、UPG実行時間計測処理部614は、主記憶装置からUPG(1)~(3)を消去する。
実行時間処理部529は、通信処理部526を介して、各装置からUPG(1)~(3)それぞれのUPG実行時間533を受信し、受信したUPG実行時間533に基き、UPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置があるかを判定する(ステップT17)。実行時間処理部529は、UPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置はないと判定すると(ステップT17でNO)、UI520を介して制限時間エラー通知を出力する(ステップT19)。UPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置があると判定されると(ステップT17でTES)、通信遅延時間を測定することで通信遅延時間の確認処理が実施される(ステップT21)。
配置ツール630は、ステップT9~T17で各装置から受信した装置の確保メモリ531およびUPG実行時間533を用いて、図15のリソース確認情報320を生成し、RAM504に格納する。図15のリソース確認情報320は、PLC100A~100Dのそれぞれに対応するPLC(1)~(4)および上位装置600について、装置の確保メモリ531およびUPG実行時間533を有する。
図14のUPG付属情報310および図15のリソース確認情報320によれば、上記の条件(トータル値<確保メモリ531が示すメモリサイズ)を満たす装置は、PLC(1)~(3)および上位装置600であるから、ステップT13では、UPG(1)~(3)はPLC(1)~(3)および上位装置600のそれぞれにダウンロードされる。ステップT17の判定は、各装置から受信した図15のUPG実行時間533が、図14のUPG付属情報310のUPG実行制限時間313と比較されて、比較の結果に基き実施される。図15によれば、PLC(1)、PLC(3)および上位装置600はUPG(1)~(3)の全てを実行制限時間313内で実行完了可能な装置と判定される(ステップT17でYES)。なお、図15では、参考までに、PLC(4)にUPG(1)~(3)をダウンロードした場合のUPG実行時間533も示されている。
ユーザは、ステップT11のエラー通知が出力されたときは、例えばUPG生成プログラム71を起動してUPG(1)~(3)を編集し直し、サイズを変更することができる。また、ステップT19のエラー通知が出力されたときは、例えばユーザはステップT1でサポート装置500に対して入力するUPG実行制限時間313を変更することができる。
(f2.通信遅延時間の確認処理と配置決定)
図17は、本実施の形態にかかる装置間の通信遅延時間を測定する処理の一例を示すフローチャートである。図18は、本実施の形態にかかる装置間の通信遅延時間を測定する際のテストデータの伝送経路を模式的に示す図である。図17を参照して、遅延算出処理部525が、装置間の通信遅延時間を測定する処理を説明する。
図17は、本実施の形態にかかる装置間の通信遅延時間を測定する処理の一例を示すフローチャートである。図18は、本実施の形態にかかる装置間の通信遅延時間を測定する際のテストデータの伝送経路を模式的に示す図である。図17を参照して、遅延算出処理部525が、装置間の通信遅延時間を測定する処理を説明する。
遅延算出処理部525は、各PLC100および上位装置600に対し、時刻同期の実施を要求する要求データを、通信処理部526を介して送信する(ステップT23)。
上位装置600および各PLC100では、遅延測定処理部613は、通信処理部615を介して受信する要求データに従い時刻同期処理部618に時刻同期処理を実施させる(ステップT25)。これにより、装置(上位装置600、PLC100およびフィールド装置90)は互いに時刻同期する。
本実施の形態では、サポート装置500(遅延算出処理部525)からの時刻同期の要求に応答して時刻同期が実施されるが、時刻同期の方法はこれに限定されない。例えば、時刻同期プロトコルによっては、当該要求なしに、装置は互いに時刻同期することが可能であり、本実施の形態では、このような要求なしの時刻同期が実施されてもよい。
遅延算出処理部525は、時刻同期の要求データを送信後、通信処理部526を介して各PLC100および上位装置600に対しテストデータを送信する(ステップT27)。各PLC100および上位装置600の遅延測定処理部613は、サポート装置500の遅延算出処理部525から受信するテストデータを用いてネットワーク11上の各装置から、当該装置のタイマが出力する時間であるタイムスタンプを収集する(ステップT29)。各PLC100および上位装置600の遅延測定処理部613は、収集したタイムスタンプをサポート装置500に送信する。タイムスタンプ収集の詳細は後述する。
遅延算出処理部525は、各PLC100および上位装置600から受信したタイムスタンプから、各装置間の通信遅延時間である全通信経路の遅延時間532を算出し、算出した全通信経路の遅延時間532をRAM504に格納する(ステップT31)。
決定処理部523は、UPG必要メモリ530、各装置の確保メモリ531、全通信経路の遅延時間532、および各UPGの実行時間533に基き、各UPG69が配置されるべき装置(PLC100または上位装置600)を決定する(ステップT33)。サポート装置500は、このとき、各UPG69を、決定された装置にダウンロードしてもよい。ステップT33の処理は、図12のパターン1~6のそれぞれについて実施することができ、詳細は後述する。
配置ツール630は、ステップT33で取得した配置決定を示すUPG配置情報627の通知を、UI520を介して出力し(ステップT35)、または格納する。
上記のステップT33およびT35では、配置ツール630は、後述する正常および異常の各パターンについて、各UPG69が配置されるべき装置およびUPG69を実行するべき装置の情報を算出し、算出された情報をUPG配置情報627として格納しておくことができる。ステップT35では、配置ツール630は、UPG配置情報627を、UI520を介してディスプレイ510に出力させる。ユーザは、制御システム1の状態(正常または異常)に対応したパターンの情報を、予め格納されたUPG配置情報627から検索し、検索された情報に基づく装置にUPG69を配置(ダウンロード)し、または検索された情報に基づく装置にUPG69を実行させることができる。
(f3.遅延測定処理部613のタイムスタンプ収集)
図18を参照して、遅延測定処理部613が実施するタイムスタンプ(時間データ)の収集処理を説明する。図18では、PLC(1)のフィールド装置群3Aのフィールド装置90を、フィールド装置90A、90Bおよび90Cと区別して説明する。遅延測定処理部613は、サポート装置500から受信するテストデータに従い、タイムスタンプ収集のために、例えばエンドツーエンド(E2E)によるデータ通信を実施する。なお、タイムスタンプ収集のための通信方法はE2Eに限定されない。
図18を参照して、遅延測定処理部613が実施するタイムスタンプ(時間データ)の収集処理を説明する。図18では、PLC(1)のフィールド装置群3Aのフィールド装置90を、フィールド装置90A、90Bおよび90Cと区別して説明する。遅延測定処理部613は、サポート装置500から受信するテストデータに従い、タイムスタンプ収集のために、例えばエンドツーエンド(E2E)によるデータ通信を実施する。なお、タイムスタンプ収集のための通信方法はE2Eに限定されない。
まず、図18のPLC(1)の遅延測定処理部613は、ペイロード26に自装置のタイマ16の時間データを格納した複数の通信フレーム20を生成する。複数の通信フレーム20は、フィールド装置群3Aの各フィールド装置90A,90Bおよび90Cそれぞれ宛の通信フレーム20と、PLC(2)、PLC(3)、PLC(4)および上位装置600それぞれ宛の通信フレーム20とを含む。これら各通信フレーム20は、ペイロード26にPLC(1)のタイマ160が出力する時間データを格納するとともに、ストリームID29の送信元(TALKER)および送信先(LISTENER)に、それぞれ、PLC(1)および宛先装置の識別子が割当てられる。
PLC(1)は、これら通信フレーム20をネットワーク11上に送信する。各装置は、通信フレーム20のストリームID29に基き自装置宛の通信フレーム20かを判定する。通信フレーム20は自装置宛と判定すると、自装置のタイマの時間データをペイロード26に格納し、通信フレーム20を送信元(PLC(1))に送信し、通信フレーム20は自装置宛と判定しないときは、通信フレーム20を通過させる。これにより、PLC(1)は、各PLC100の間、PLC(1)とフィールド装置90Aの間、フィールド装置90A,90Bおよび90Cの各装置間、およびPLC(1)と上位装置600の間を転送された通信フレーム20を受信できる。PLC(1)は、各装置から受信する通信フレーム20をサポート装置500に送信する。
PLC(2)の遅延測定処理部613は、ペイロード26に自装置のタイマ16の時間データを格納した複数の通信フレーム20、すなわち、フィールド装置群3Bの各フィールド装置90宛の通信フレーム20と上位装置600それぞれ宛の通信フレーム20と生成し送信する。各装置は自装置の通信フレーム20にタイマの時間データをペイロード26に格納し、通信フレーム20を送信元(PLC(2))に送信する。これにより、PLC(2)は、PLC(2)とフィールド装置90の間、フィールド装置群3Bのフィールド装置90間、およびPLC(2)と上位装置600の間を転送された通信フレーム20を受信できる。PLC(2)は、各装置から受信する通信フレーム20をサポート装置500に送信する。
PLC(3)およびPLC(4)の遅延測定処理部613も、PLC(2)と同様に、フィールド装置群3Cの各フィールド装置90と上位装置600それぞれ宛の通信フレーム20を用いて、各装置から時間データを格納した通信フレーム20をサポート装置500に送信する。これにより、PLC(3)は、PLC(3)とフィールド装置90の間、フィールド装置間、およびPLC(3)と上位装置600の間を転送された通信フレーム20を受信し、サポート装置500に転送できる。また、PLC(4)は、PLC(4)とフィールド装置90の間、各フィールド装置間、およびPLC(4)と上位装置600の間を転送された通信フレーム20を受信し、サポート装置500に転送できる。
サポート装置500の遅延算出処理部525は、PLC(1)~PLC(4)から受信する通信フレーム20のペイロード26の時間データから、タイムスタンプを収集し、収集したタイムスタンプから各装置間の通信遅延時間を算出し、全通信経路の遅延時間532としてRAM504に格納する。なお、このタイムスタンプの収集方法は一例であり、これに限定されない。
(f4.パターン1の配置決定)
まず、配置決定の処理で参照される情報を説明する。図19は、本実施の形態にかかる決定処理部523が配置決定のために参照する情報の一例を示す図である。図20は、本実施の形態にかかるパターン1に従うUPGの配置の一例を模式的に示す図である。図19を参照して、情報は、配置対象のUPG(1)~(3)のそれぞれに対応して、UPG実行時間533、当該UPG69内で参照される1つ以上の変数314を含む。変数314は、対応のUPG69内で使用される入力変数であり、例えば当該UPG69のプログラムコードから抽出することができる。図20は、図19の各UPG69が使用する変数に設定されるフィールド値を出力するフィールド装置90と特定して示している。
まず、配置決定の処理で参照される情報を説明する。図19は、本実施の形態にかかる決定処理部523が配置決定のために参照する情報の一例を示す図である。図20は、本実施の形態にかかるパターン1に従うUPGの配置の一例を模式的に示す図である。図19を参照して、情報は、配置対象のUPG(1)~(3)のそれぞれに対応して、UPG実行時間533、当該UPG69内で参照される1つ以上の変数314を含む。変数314は、対応のUPG69内で使用される入力変数であり、例えば当該UPG69のプログラムコードから抽出することができる。図20は、図19の各UPG69が使用する変数に設定されるフィールド値を出力するフィールド装置90と特定して示している。
図21は、本実施の形態にかかるパターン1に従う配置決定の処理の一例を示すフローチャートである。決定処理部523は、UPGライブラリ172のUPG(1)~(3)のうちUPG実行時間533が最大のUPG(ここではUPG-maxという)を選択する(ステップS3)。
決定処理部523は、例えば図19のUPG実行時間533の場合、(t1<t2<t3)に従い、UPG-maxとしてUPG(3)を選択する(ステップS3)。
決定処理部523は、PLC(1)~(4)それぞれにおけるUPG-maxの変数314の通信遅延時間とUPG実行時間533の合計のうちの最大値を決定する(ステップS7)。この変数314の通信遅延時間は、当該PLC100でUPG-maxが実行される場合のIOリフレッシュ72の所要時間に相当する。全通信路の遅延時間532によれば、例えば、PLC100をデータが透過(スルー)する時間、すなわちPLC100間の通信遅延時間は0.3msec、PLC100とフィールド装置90の間またはフィールド装置90間の通信遅延時間は0.1msecであるとする。また、PLC(1)~(4)それぞれにおけるUPG実行時間533は、例えば一律0.5msecであるとする。本実施の形態では、各装置間の通信遅延時間は、UPG69が使用する入力データ(変数314のデータ)の通信遅延時間を含む。したがって、UPG-maxの変数314の通信遅延時間とUPG実行時間533の合計は、当該UPG-maxを実行する場合のIOリフレッシュ72とUPG実行にかかる時間となる。各装置間の通信遅延時間は、制御プログラムが使用する入力データの通信遅延時間を含む。
PLC(1)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:0.8msec、b3:1.4msec、c3:1.7msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(2)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.1msec、b3:1.1msec、c3:1.7msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(3)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.7msec、b3:0.8msec、c3:1.4msecであるので、そのうちの最大値1.7msecが抽出される。
PLC(4)にUPG-maxをダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:2.0msec、b3:1.4msec、c3:0.8msecであるので、そのうちの最大値2.0msecが抽出される。
決定処理部523は、ステップS7で抽出された各PLC100に対応の合計の最大値のうち、その値が最小である対応のPLC100を決定する(ステップS9)。決定処理部523は、決定したPLC100にUPG-maxをダウンロードする(ステップS11)。
なお、ステップS9において、決定したPLC100が複数個ある場合は、決定処理部523は、確保メモリ531のサイズがより大きい方を、UPG-maxのダウンロード先に選択する。
決定処理部523は、UPG(1)~(3)のうち、ステップS3~S11の処理が実施されていない、いわゆる残りのUPG69があるか否かを判定する(ステップS13)。決定処理部523は、残りのUPG69があると判定すると(ステップS13でYES)、ステップS3に戻り、残りのUPG69についてステップS3以降の処理を実施する。決定処理部523は、残りのUPG69はないと判定すると(ステップS13でNO)、ステップS15に移行する。
決定処理部523は、UPG(1)~(3)のそれぞれについて、決定されたPLC100における当該UPGの実行時間と変数の通信遅延時間(IOリフレッシュ時間)との合計を算出し、合計の総和を算出する(ステップS15)。
決定処理部523は、ステップT1でユーザが設定した実行制限時間315と、ステップS15で算出されたUPG(1)~(3)それぞれの合計の総和とを比較し、比較の結果に基き(合計の総和≦実行制限時間315)の条件が満たされるか否かを判定する(ステップS17)。
決定処理部523は、(合計の総和≦実行制限時間315)の条件が満たされると判定すると(ステップS17でYES)、正常に配置決定できた旨の通知をUI520を介して出力する(ステップS19)。また、決定処理部523は、当該条件が満たされないと判定すると(ステップS17でNO)、実行制限時間のエラーの通知を、UI520を介して出力する(ステップS21)。例えば、図20では、UPG(1)~(3)は、それぞれPLC(1)~PLC(3)に配置決定されたことが示される。
このようにパターン1では、配置ツール630は、制御システム1が上位装置600によるUPG69の実行環境を提供できない場合において、UPG(1)~(3)のそれぞれについて、通信遅延時間と、PLC(1)~(4)の当該UPG69の実行に使用可能な記憶領域サイズおよび実行時間を含むリソースとに基づき、PLC(1)~(4)のうちから当該UPG69が配置されるべきPLC100を決定することができる。
(f5.パターン2の配置決定)
図22は、本実施の形態にかかるパターン2に従うUPGの配置の一例を模式的に示す図である。パターン2では、UPG69の配置先の候補として上位装置600を含めることが可能である。
図22は、本実施の形態にかかるパターン2に従うUPGの配置の一例を模式的に示す図である。パターン2では、UPG69の配置先の候補として上位装置600を含めることが可能である。
パターン1では、決定処理部523によってUPG69の配置が決定された装置が、UPG69を実行するべき装置として自動的に決定された。これに対して、パターン2では、PLC100に比較して、確保メモリ531が大きく且つUPG実行時間533が短い、すなわち高速にUPG69を実行可能な環境を提供する上位装置600を配置先の装置、またはUPG69を実行する装置と決定することができて、制御システム1を高いパフォーマンスで運用することができる。
図22では、上位装置600は、確保メモリ531のサイズがPLC(1)~(4)に比較して極めて大きいことから、UPG(1)~(3)が配置され得る。UPG(1)~(3)についてのPLC(1)~(4)への配置決定は図21と同様に実施することができる。図23は、本実施の形態にかかるパターン2に従う配置決定の処理の一例を示すフローチャートである。図23の処理では、図23のステップS3~S12において、上位装置600およびPLC(1)~(4)のうちからUPG69を実行する装置を決定する処理が行われる。なお、全通信路の遅延時間532によれば、例えば、PLC100間の通信遅延時間は0.3msec、PLC100とフィールド装置90の間またはフィールド装置90間の通信遅延時間は0.1msec、および各PLC100と上位装置600と間は0.4msecであるとする。また、PLC(1)~(4)それぞれにおけるUPG実行時間533は、例えば一律0.5msecであり、上位装置600のUPG実行時間533は、例えば0.3msecとする。
まず、決定処理部523は、UPG-maxを選択して(ステップS3)、PLC(1)~PLC(4)それぞれについて、UPG-maxを実行した場合の実行時間と通信遅延時間の合計を算出する(ステップS7)。合計の最大値は、パターン1と同様に、PLC(1)~PLC(4)それぞれについて、1.7msec、1.7msec、1.7msecおよび2.0msecが算出される。
決定処理部523は、上位装置600でUPG-maxを実行した場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:1.3msec、b3:1.3msec、c3:1.3msecであるので、そのうちの最大値1.3msecを算出する(ステップS8)。
さらに、パターン2では、決定処理部523は、各PLC100が上位装置600を経由して変数の通信をする場合の合計の最大値も算出する(ステップS8a)。すなわち、通信遅延時間に(各PLC100と上位装置600と間の往復通信時間(0.4×2)msec)を追加することで、例えばUPG-max(UPG(3))をPLC(1)にダウンロードした場合、UPG(3)の変数a3、b3およびc3についての合計は、それぞれ、a3:0.8msec、b3:1.9msec、c3:1.9msecであるので、そのうちの最大値1.9msecが抽出される。PLC(2)およびPLC(3)の場合も同様に計算すると、いずれも最大値は1.9msecとなる。
決定処理部523は、ステップS7とステップS8aで算出された各PLC100に対応の合計の最大値のうち、その値が最小である対応のPLC100を決定する(ステップS9)。決定処理部523は、パターン1と同様に、決定されたPLC100にUPG-maxをダウンロードする(ステップS11)。
決定処理部523は、上位装置600およびPLC(1)~(4)のうち、合計の最大値が最小である装置を、UPG-maxを実行する実行装置として決定する(ステップS12)。決定処理部523は、ステップS13以降の処理をパターン1と同様に実施する。
パターン2では、決定処理部523は、UPG(1)~(3)の配置先として、PLC100または上位装置600に決定することができるが、そのうち、UPG(1)~(3)の実行装置を上位装置600に決定する。すなわち、パターン2のようにPLC(1)~(4)それぞれと上位装置600の間の通信遅延時間(0.4msec)が十分に小さい場合は、上位装置600における実行時間(0.3msec)はPLC100の実行時間(0.5msec)よりも短いこと、および上位装置600の確保メモリ531のサイズはPLC(1)~(4)に比較して極めて大きいことから、ステップS12では、例えば、UPG(1)~(3)の配置先である上位装置600およびPLC(1)~(4)のうちから、上位装置600を実行装置として決定することができる。
ステップS13~S21の処理は、図21の対応する処理と同様であるから説明は繰り返さない。
このように、上位装置600においてUPG69が実行されることで、PLC100で実行される場合に比較して制御システム1を高いパフォーマンスで稼働させることができる。
(f6.パターン3の配置決定)
図24は、本実施の形態にかかるパターン3に従うUPGの配置の一例を模式的に示す図である。パターン3は、パターン2でUPG(1)~(3)の配置決定がなされた場合(図24の(A))において、上位装置600とPLC100の間の通信が断絶などの異常が検知された故障モードを示す。この故障モードは、PLC100(1)~(4)が、例えば、図11に示す上位装置600で実行されるUPG(1)~UPG(3)の実行結果である制御データ(図11に示す出力データ(受信)183)を受信できない状態にあたる。
図24は、本実施の形態にかかるパターン3に従うUPGの配置の一例を模式的に示す図である。パターン3は、パターン2でUPG(1)~(3)の配置決定がなされた場合(図24の(A))において、上位装置600とPLC100の間の通信が断絶などの異常が検知された故障モードを示す。この故障モードは、PLC100(1)~(4)が、例えば、図11に示す上位装置600で実行されるUPG(1)~UPG(3)の実行結果である制御データ(図11に示す出力データ(受信)183)を受信できない状態にあたる。
配置ツール630は、故障モードのパターン3に対応したUPGの配置決定を実施しUPG配置情報627を算出する(図24の(B))。パターン3で実施される配置決定の処理は、変数の通信に関し、上位装置600を経由しない通信経路における通信遅延時間を用いた処理であり、パターン1で示した図21の処理と同様であるので、説明は繰返さない。
このように、パターン2の配置決定状態からPLC100が上位装置600からUPG69の実行結果(制御データ)を受信できない状態となった場合は、パターン3のUPG配置情報627に従い、上位装置600とは独立してPLC100側で制御データを算出可能なようにUPG69の実行装置を決定する再配置が実施されることで、制御システム1の稼働を継続することができる。
(f7.パターン4の配置決定)
図25は、本実施の形態にかかるパターン4に従うUPGの配置の一例を模式的に示す図である。パターン4は、UPG(1)~(3)が上位装置600に配置されるとともに、PLC(1)~(3)にも配置された状態において、上位装置600を経由する通信経路の通信遅延時間よりも、上位装置600を経由する通信経路を用いない通信遅延時間が小さい場合である。したがって、図25の(A)に示すようにUPG(1)~(3)は、それぞれの実行装置は、PLC(1)~(3)に決定されている。図25の(A)において、PLC(1)とPLC(2)との間のネットワーク11に異常が発生し通信が断絶した状態について、配置ツール630は、故障モードのパターン4に対応したUPG配置情報627を算出する。
図25は、本実施の形態にかかるパターン4に従うUPGの配置の一例を模式的に示す図である。パターン4は、UPG(1)~(3)が上位装置600に配置されるとともに、PLC(1)~(3)にも配置された状態において、上位装置600を経由する通信経路の通信遅延時間よりも、上位装置600を経由する通信経路を用いない通信遅延時間が小さい場合である。したがって、図25の(A)に示すようにUPG(1)~(3)は、それぞれの実行装置は、PLC(1)~(3)に決定されている。図25の(A)において、PLC(1)とPLC(2)との間のネットワーク11に異常が発生し通信が断絶した状態について、配置ツール630は、故障モードのパターン4に対応したUPG配置情報627を算出する。
配置ツール630の決定処理部523は、故障モードのパターン4について、PLC(1)とPLC(2)との間の通信経路を用いない、すなわち上位装置600を経由する通信経路を用いた通信遅延時間を算出する。例えば、パターン2に従う配置決定処理を実施する。これにより、決定処理部523は、例えばUPG(1)とUPG(3)の実行装置を上位装置600に決定し、UPG(2)をPLC(2)に配置して実行することを示すUPG配置情報627を算出する(図25の(B))。
このように、上位装置600にUPG69が配置された状態でPLC100がUPG69の実行装置に決定されている場合において、PLC100間の通信経路に異常が生じた場合は、パターン4のUPG配置情報627に従い、実行装置をPLC100から上位装置600に切替えることで、制御システム1の稼働を継続することができる。
(f8.パターン5の配置決定)
図26は、本実施の形態にかかるパターン5に従うUPGの配置の一例を模式的に示す図である。パターン5は、図26の(A)のUPG(1)~(3)の実行装置がPLC(1)~(3)に決定された状態において、図26の(B)に示すように、例えばPLC(3)がUPG69を実行不可能になった状態(例えば故障)を示す。
図26は、本実施の形態にかかるパターン5に従うUPGの配置の一例を模式的に示す図である。パターン5は、図26の(A)のUPG(1)~(3)の実行装置がPLC(1)~(3)に決定された状態において、図26の(B)に示すように、例えばPLC(3)がUPG69を実行不可能になった状態(例えば故障)を示す。
配置ツール630は、上記の異常が検知された故障モードのパターン5に対応のUPG配置情報627を算出する。
配置ツール630の決定処理部523は、故障のPLC(3)を除いたPLC(1)、PLC(2)およびPLC(4)および上位装置600を対象にして、パターン2の処理と同様に配置決定の処理を実施する。これにより、例えば、図26の(B)に示すように、UPG(3)の実行装置をPLC(3)から上位装置600に切替えるようなUPG配置情報627を算出することができる。
このように、LC100がUPG69の実行装置に決定されている場合において、PLC100に異常(故障など)が生じて実行不可能になった場合は、パターン5に対応のUPG配置情報627に従い、実行装置をPLC100から上位装置600に切替えて、制御システム1の稼働を継続することができる。
(f9.パターン6の配置決定)
図27は、本実施の形態にかかるパターン6に従うUPGの配置の一例を模式的に示す図である。パターン6は、図27の(A)のようにUPG(1)~(3)の実行装置が上位装置600である場合に、図27の(B)のようにPLC(3)と上位装置600の間の通信経路が断絶した異常状態の故障モードを示す。図27の(A)は、例えばパターン2の配置決定処理において、上位装置600がUPG(1)~(3)の実行装置に再度決定されたケースである。
図27は、本実施の形態にかかるパターン6に従うUPGの配置の一例を模式的に示す図である。パターン6は、図27の(A)のようにUPG(1)~(3)の実行装置が上位装置600である場合に、図27の(B)のようにPLC(3)と上位装置600の間の通信経路が断絶した異常状態の故障モードを示す。図27の(A)は、例えばパターン2の配置決定処理において、上位装置600がUPG(1)~(3)の実行装置に再度決定されたケースである。
配置ツール630の決定処理部523は、パターン6の通知に従い、PLC(3)と上位装置600との間の通信経路を経由しない通信遅延時間を用いて、パターン2の処理と同様の手順でUPG(1)~(3)の配置決定を実施することで、パターン6に対応のUPG配置情報627を算出する。例えば、パターン6に対応のUPG配置情報627に従えば、UPG(1)~(3)の実行装置を上位装置600に再度決定することができる。
<G.プログラム>
図2と図4と図5には、それぞれ、プロセッサ112とプロセッサ603とCPU502がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、マルチプロセッサを備えて並列実行可能な環境が提供される。また、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
図2と図4と図5には、それぞれ、プロセッサ112とプロセッサ603とCPU502がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、PLC100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、マルチプロセッサを備えて並列実行可能な環境が提供される。また、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
プロセッサ112またはプロセッサ603が必要なプログラムを実行することによって、図8の各部は上記の処理を実行してもよい。当該プログラムは、記憶ユニット(ストレージ119またはHDD606)に記憶されていてもよい。プロセッサ112またはプロセッサ603が必要なプログラムを実行する際は、記憶ユニットに記憶された対象となるプログラムをRAMに展開する。そして、プロセッサ112またはプロセッサ603は、RAMに展開された当該プログラムを解釈および実行して、各構成要素を制御する。
また、CPU502が必要なプログラムを実行することによって、図9の各部は上記の処理を実行してもよい。当該プログラムは、記憶ユニット(HDD505)に記憶されていてもよい。CPU502が必要なプログラムを実行する際は、記憶ユニットに記憶された対象となるプログラムをRAMに展開する。そして、CPU502は、RAMに展開された当該プログラムを解釈および実行して、各構成要素を制御する。
上記の記憶ユニットは、例えば、HDD、SSD等の補助記憶装置であり、プロセッサまたはCPUで実行される図2、図4および図5に示すプログラムおよびデータ等を記憶する。
メモリカード116、621および記憶媒体501は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。PLC100、上位装置600およびサポート装置500は、これらメモリカード116、621および記憶媒体501から、上記の記憶ユニットに格納されるプログラムおよび/またはデータを取得してもよい。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)であって、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)と、を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、制御システム。
[構成2]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズ(633)を含む、構成1に記載の制御システム。
[構成3]
前記配置手段は、
各装置に、前記制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる、構成2に記載の制御システム。
[構成4]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プロセッサを前記制御プログラムの実行に使用可能な時間(533)を含む、構成1または2に記載の制御システム。
[構成5]
前記配置手段は、
各装置に、前記プロセッサによる前記制御プログラムの実行に使用可能な時間を問い合わせる、構成4に記載の制御システム。
[構成6]
前記装置間の通信遅延時間を測定する手段(613)を、さらに備える、構成1から5のいずれか1に記載の制御システム。
[構成7]
前記各装置間の通信遅延時間は、前記制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む、構成1から6のいずれか1に記載の制御システム。
[構成8]
前記複数の装置は、互いに時刻同期された情報処理装置(600)と1以上の制御装置(100)とを含み、
前記情報処理装置の前記実行手段は、
各前記1以上の制御装置から受信するデータを用いて前記制御プログラムをプロセッサに実行させ、
前記各制御装置の前記実行手段は、
前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、プロセッサに実行させ、
前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記各制御装置と前記情報処理装置との間で共有される時間(10)内で実行される、構成1から3のいずれか1に記載の制御システム。
[構成9]
前記配置手段は、
前記制御システムの故障モード毎に、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、構成1から8のいずれか1に記載の制御システム。
[構成10]
前記配置手段は、
前記制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する(S12)、構成1から9のいずれか1に記載の制御システム。
[構成11]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施する設定装置(500)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するためのプログラム記憶手段(119,606)と、
配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記設定装置は、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、設定装置。
[構成12]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施するためのコンピュータプログラム(61)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記コンピュータプログラムは、コンピュータに、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる、コンピュータプログラム。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)であって、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)と、を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、制御システム。
[構成2]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズ(633)を含む、構成1に記載の制御システム。
[構成3]
前記配置手段は、
各装置に、前記制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる、構成2に記載の制御システム。
[構成4]
前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プロセッサを前記制御プログラムの実行に使用可能な時間(533)を含む、構成1または2に記載の制御システム。
[構成5]
前記配置手段は、
各装置に、前記プロセッサによる前記制御プログラムの実行に使用可能な時間を問い合わせる、構成4に記載の制御システム。
[構成6]
前記装置間の通信遅延時間を測定する手段(613)を、さらに備える、構成1から5のいずれか1に記載の制御システム。
[構成7]
前記各装置間の通信遅延時間は、前記制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む、構成1から6のいずれか1に記載の制御システム。
[構成8]
前記複数の装置は、互いに時刻同期された情報処理装置(600)と1以上の制御装置(100)とを含み、
前記情報処理装置の前記実行手段は、
各前記1以上の制御装置から受信するデータを用いて前記制御プログラムをプロセッサに実行させ、
前記各制御装置の前記実行手段は、
前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、プロセッサに実行させ、
前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記各制御装置と前記情報処理装置との間で共有される時間(10)内で実行される、構成1から3のいずれか1に記載の制御システム。
[構成9]
前記配置手段は、
前記制御システムの故障モード毎に、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、構成1から8のいずれか1に記載の制御システム。
[構成10]
前記配置手段は、
前記制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する(S12)、構成1から9のいずれか1に記載の制御システム。
[構成11]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施する設定装置(500)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するためのプログラム記憶手段(119,606)と、
配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記設定装置は、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段(630)を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、設定装置。
[構成12]
ネットワーク(11)接続される制御対象(90)および複数の装置(100,600)を備える制御システム(1)に対する設定を実施するためのコンピュータプログラム(61)であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラム(69)を記憶するための各装置に備えられるプログラム記憶手段(119,606)と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサ(112,603)に実行させる実行手段と、を備え、
前記コンピュータプログラムは、コンピュータに、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、
各制御プログラムについて、各装置間の通信遅延時間(631)と、各装置の当該制御プログラムの実行に使用可能なリソースの情報(632)に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる、コンピュータプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、3A,3B,3C,3D フィールド装置群、10 制御周期、11 ネットワーク、12,13 データ格納時間、14 待ち時間、16,99,101A,101B,101C,101D,160,601 タイマ、20 通信フレーム、21 プリアンブル、22 宛先、23 送信元、24 タグ、25 タイプ、26 ペイロード、27 誤り訂正情報、42 フロー、61 配置プログラム、62,96,116,622 メモリカード、63,84,123 スケジューラ、64,83,127,611 通信プログラム、67,121,831 時刻同期プログラム、68 サーバプログラム、70,81,122,701 システムプログラム、71 UPG生成プログラム、72 IOリフレッシュ、73 上位通信、82 アプリケーションプログラム、86 遅延時間測定プログラム、87 メモリサイズ算出プログラム、88 実行時間測定プログラム、89 リソース測定プログラム、90,90A,90B,9090 フィールド装置、91,112,603 プロセッサ、110 演算処理部、114 記憶部、119 ストレージ、120 周辺処理プログラム、125 リフレッシュプログラム、126 測定プログラム、134,944 入力データ、135,943 出力データ、162 メモリサイズ取得プログラム、163 遅延時間取得プログラム、170,171,172 ライブラリ、262 実行時間取得プログラム、310 付属情報、313 各UPGの実行制限時間、314 変数、315 全UPGの実行制限時間、320 リソース確認情報、500 サポート装置、522 実行メモリ確認処理部、523 決定処理部、524 必要リソース算出処理部、525 遅延算出処理部、526,615 通信処理部、529 実行時間処理部、530 UPG必要メモリ、531 確保メモリ、532 遅延時間、533,634 実行時間、600 上位装置、610 スケジューリング処理部、612 確保メモリ算出処理部、613 遅延測定処理部、614 実行時間計測処理部、618 時刻同期処理部、627 配置情報、629 必要リソース取得プログラム、630 配置ツール、631 通信遅延時間、632 リソース量、633 記憶領域サイズ。
Claims (12)
- ネットワーク接続される制御対象および複数の装置を備える制御システムであって、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するための各装置に備えられるプログラム記憶手段と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段と、を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、制御システム。 - 前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プログラム記憶手段における当該制御プログラムの実行に使用可能な記憶領域のサイズを含む、請求項1に記載の制御システム。
- 前記配置手段は、
各装置に、前記制御プログラムの実行に使用可能な記憶領域のサイズを問い合わせる、請求項2に記載の制御システム。 - 前記各装置の制御プログラムの実行に使用可能なリソースの情報は、前記プロセッサを前記制御プログラムの実行に使用可能な時間を含む、請求項1または2に記載の制御システム。
- 前記配置手段は、
各装置に、前記プロセッサによる前記制御プログラムの実行に使用可能な時間を問い合わせる、請求項4に記載の制御システム。 - 前記装置間の通信遅延時間を測定する手段を、さらに備える、請求項1から5のいずれか1項に記載の制御システム。
- 前記各装置間の通信遅延時間は、前記制御対象と遣り取りするデータの通信にかかる通信遅延時間を含む、請求項1から6のいずれか1項に記載の制御システム。
- 前記複数の装置は、互いに時刻同期された情報処理装置と1以上の制御装置とを含み、
前記情報処理装置の前記実行手段は、
各前記1以上の制御装置から受信するデータを用いて前記制御プログラムをプロセッサに実行させ、
前記各制御装置の前記実行手段は、
前記制御対象と遣り取りするデータを前記情報処理装置へ転送し、前記情報処理装置から受信する前記制御データを前記制御対象に出力する入出力プログラムを、プロセッサに実行させ、
前記制御プログラムおよび前記入出力プログラムは、前記時刻同期に基づく時間であって前記各制御装置と前記情報処理装置との間で共有される時間内で実行される、請求項1から3のいずれか1項に記載の制御システム。 - 前記配置手段は、
前記制御システムの故障モード毎に、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、請求項1から8のいずれか1項に記載の制御システム。 - 前記配置手段は、
前記制御プログラムの配置が決定された装置のうちから、当該制御プログラムを実行するべき装置を決定する、請求項1から9のいずれか1項に記載の制御システム。 - ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施する設定装置であって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するためのプログラム記憶手段と、
前記制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備え、
前記設定装置は、
複数の制御プログラムを、前記複数の装置のうちの1つ以上に配置する配置手段を備え、
前記配置手段は、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定する、設定装置。 - ネットワーク接続される制御対象および複数の装置を備える制御システムに対する設定を実施するためのコンピュータプログラムであって、
各装置は、
制御対象と遣り取りするデータを用いて制御データを算出する制御プログラムを記憶するための各装置に備えられるプログラム記憶手段と、
各装置に備えられて、配置される前記制御プログラムを含む複数のプログラムをプロセッサに実行させる実行手段と、を備え、
前記コンピュータプログラムは、コンピュータに、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報を取得するステップと、
各制御プログラムについて、各装置間の通信遅延時間と、各装置の当該制御プログラムの実行に使用可能なリソースの情報に基づき、前記複数の装置のうちから当該制御プログラムが配置される装置を決定するステップと、を実行させる、コンピュータプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202080046667.9A CN114072737B (zh) | 2019-07-03 | 2020-03-10 | 控制系统、设定装置以及机器可读取存储介质 |
EP20834459.8A EP3995912A4 (en) | 2019-07-03 | 2020-03-10 | CONTROL SYSTEM, CONTROL DEVICE AND COMPUTER PROGRAM |
US17/597,124 US20220244697A1 (en) | 2019-07-03 | 2020-03-10 | Control system, setting device, and computer-readable storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-124437 | 2019-07-03 | ||
JP2019124437A JP7423920B2 (ja) | 2019-07-03 | 2019-07-03 | 制御システム、設定装置およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021002059A1 true WO2021002059A1 (ja) | 2021-01-07 |
Family
ID=74101271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/010343 WO2021002059A1 (ja) | 2019-07-03 | 2020-03-10 | 制御システム、設定装置およびコンピュータプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220244697A1 (ja) |
EP (1) | EP3995912A4 (ja) |
JP (1) | JP7423920B2 (ja) |
CN (1) | CN114072737B (ja) |
WO (1) | WO2021002059A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022137663A (ja) * | 2021-03-09 | 2022-09-22 | オムロン株式会社 | 制御システムおよびデータ送信方法 |
CN115047819B (zh) * | 2022-05-17 | 2023-05-09 | 南京昇榕智能科技有限公司 | 一种plc系统、plc数据传输方法及装置 |
CN115048206B (zh) * | 2022-08-15 | 2022-12-27 | 阿里巴巴(中国)有限公司 | 资源调度方法及服务器 |
WO2024089881A1 (ja) * | 2022-10-28 | 2024-05-02 | ファナック株式会社 | ロボット制御装置、工作機械及び連携システム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10164167A (ja) | 1996-11-29 | 1998-06-19 | Omron Corp | プログラマブルコントローラ |
JPH10244570A (ja) * | 1997-03-07 | 1998-09-14 | Nissei Plastics Ind Co | 射出成形システム |
WO2002042853A1 (en) * | 2000-11-24 | 2002-05-30 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for programming |
WO2012090291A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社日立製作所 | モーションコントローラ |
US20120265322A1 (en) * | 2011-04-11 | 2012-10-18 | Hildebran Bret S | Input Module For An Industrial Controller |
JP2016151892A (ja) * | 2015-02-17 | 2016-08-22 | 株式会社リコー | 情報処理装置、インストール方法、及びインストールプログラム |
JP2019106225A (ja) * | 2019-04-08 | 2019-06-27 | オムロン株式会社 | 制御装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040100982A1 (en) * | 1999-09-30 | 2004-05-27 | Sivaram Balasubramanian | Distributed real-time operating system |
US7836168B1 (en) * | 2002-06-04 | 2010-11-16 | Rockwell Automation Technologies, Inc. | System and methodology providing flexible and distributed processing in an industrial controller environment |
JP4676981B2 (ja) * | 2004-06-30 | 2011-04-27 | コヒーレント ロジックス インコーポレイテッド | ハードウェア記述言語(hdl)プログラムの実行 |
JP2007034359A (ja) * | 2005-07-22 | 2007-02-08 | Hitachi Ltd | 分散制御装置 |
JP4877423B1 (ja) * | 2011-03-15 | 2012-02-15 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
EP2721452A1 (en) * | 2011-06-20 | 2014-04-23 | ABB Research Ltd. | A method and a system for online and dynamic schedule configuration of control applications in a distributed control system |
JP6442131B2 (ja) * | 2012-11-14 | 2018-12-19 | オムロン株式会社 | 制御システムおよび制御装置 |
JP6171385B2 (ja) * | 2013-02-15 | 2017-08-02 | オムロン株式会社 | コントローラおよび情報処理装置 |
RU2647659C2 (ru) * | 2013-11-26 | 2018-03-16 | Сименс Акциенгезелльшафт | Выгрузка задач человеко-машинного взаимодействия |
JP6926539B2 (ja) * | 2017-03-10 | 2021-08-25 | オムロン株式会社 | 制御装置およびプログラム |
JP6399136B1 (ja) * | 2017-03-31 | 2018-10-03 | オムロン株式会社 | 制御装置、制御プログラム、および制御システム |
CN109218048A (zh) * | 2017-06-30 | 2019-01-15 | 西门子公司 | 对部署在云上的一个工业系统的性能测试方法和装置 |
JP6962099B2 (ja) * | 2017-09-25 | 2021-11-05 | オムロン株式会社 | 制御システムおよび制御装置 |
EP3611579A1 (de) * | 2018-08-13 | 2020-02-19 | Siemens Aktiengesellschaft | Echtzeit-automatisierungseinrichtung mit einem echtzeit-datenbus |
-
2019
- 2019-07-03 JP JP2019124437A patent/JP7423920B2/ja active Active
-
2020
- 2020-03-10 EP EP20834459.8A patent/EP3995912A4/en active Pending
- 2020-03-10 US US17/597,124 patent/US20220244697A1/en active Pending
- 2020-03-10 CN CN202080046667.9A patent/CN114072737B/zh active Active
- 2020-03-10 WO PCT/JP2020/010343 patent/WO2021002059A1/ja unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10164167A (ja) | 1996-11-29 | 1998-06-19 | Omron Corp | プログラマブルコントローラ |
JPH10244570A (ja) * | 1997-03-07 | 1998-09-14 | Nissei Plastics Ind Co | 射出成形システム |
WO2002042853A1 (en) * | 2000-11-24 | 2002-05-30 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for programming |
WO2012090291A1 (ja) * | 2010-12-28 | 2012-07-05 | 株式会社日立製作所 | モーションコントローラ |
US20120265322A1 (en) * | 2011-04-11 | 2012-10-18 | Hildebran Bret S | Input Module For An Industrial Controller |
JP2016151892A (ja) * | 2015-02-17 | 2016-08-22 | 株式会社リコー | 情報処理装置、インストール方法、及びインストールプログラム |
JP2019106225A (ja) * | 2019-04-08 | 2019-06-27 | オムロン株式会社 | 制御装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3995912A4 |
Also Published As
Publication number | Publication date |
---|---|
JP7423920B2 (ja) | 2024-01-30 |
JP2021012405A (ja) | 2021-02-04 |
CN114072737B (zh) | 2024-07-19 |
US20220244697A1 (en) | 2022-08-04 |
CN114072737A (zh) | 2022-02-18 |
EP3995912A1 (en) | 2022-05-11 |
EP3995912A4 (en) | 2023-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021002059A1 (ja) | 制御システム、設定装置およびコンピュータプログラム | |
JP6962099B2 (ja) | 制御システムおよび制御装置 | |
US11012365B2 (en) | Changing a time sensitive networking schedule implemented by a softswitch | |
US20140005805A1 (en) | Cpu of plc, system program for plc, and recording medium storing system program for plc | |
JP7396393B2 (ja) | 制御システム、装置および制御方法 | |
JP2022028059A (ja) | 制御システム | |
EP4036669A1 (en) | Control system, information processing device, and program | |
US9568905B2 (en) | CPU of PLC, system program for PLC, and recording medium storing system program for PLC | |
US20190229885A1 (en) | Computing device and control system | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
JP7066080B1 (ja) | 通信制御装置、通信制御方法及びプログラム | |
CN110278716B (zh) | Plc、网络单元、cpu单元、以及数据传送方法 | |
JP2021033437A (ja) | 制御システム、制御装置およびプログラム | |
WO2021002060A1 (ja) | 制御システム、サポート装置および設定プログラム | |
JP2005092520A (ja) | 2重化コントローラシステム、その等値化方法 | |
JP5951025B2 (ja) | 入出力応答制御設定装置 | |
JP3024345B2 (ja) | データリンク方法 | |
JP7231073B2 (ja) | 制御装置および制御システム | |
US20100226393A1 (en) | Communication system and communication apparatus | |
US20240160807A1 (en) | Method for simulating a technical device | |
JP2021114019A (ja) | データ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20834459 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020834459 Country of ref document: EP Effective date: 20220203 |