Communication control device and communication system for control
The communication control device improves performance and data capacity by associating partial control data with attributes for packet communication, addressing consistency and capacity issues in industrial control systems, thereby supporting advanced processing needs.
Patent Information
- Application Number
- PCT/JP2023/022405
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-16
- Publication Date
- 2024-12-19
AI Technical Summary
Control systems face challenges in maintaining data consistency and capacity as communication cycles shorten, with existing RAM and storage solutions struggling to keep up with increasing performance demands, particularly in large-scale or complex industrial control networks.
A communication control device with a calculation unit, communication unit, and data storage unit that associates partial data with attributes for packet communication, enabling improved communication and calculation performance and increased data capacity through exclusive control functions.
Enhances communication and calculation performance while addressing data capacity limitations, ensuring consistent data exchange and supporting advanced processing requirements in industrial control systems.
Smart Images

Figure JP2023022405_19122024_PF_FP_ABST
Abstract
Description
COMMUNICATION CONTROL DEVICE AND CONTROL COMMUNICATION SYSTEM The present invention relates to a technique for a control communication system, a communication control device, a control data processing method, and a control data processing program. Patent Document 1 shows a communication node equipped with a communication controller and a data processing device in order to increase processing performance regardless of the processing performance of a CPU. The communication controller transmits information to be transmitted to a transmission line, and stores information received from the transmission line in a storage device. The data processing device calculates a transmission time of the own communication node based on the received information and information previously set in the own communication node, counts the calculated transmission time from the time when the end of writing by the communication controller is detected, and notifies a transmission command to the communication controller. Non-Patent Document 1 defines elements and rules for describing both a communication network profile and a device profile in an Ethernet-based control system. JP 2000-76163 A ISO14745-4 “Industrial Automation Systems and integration Open systems application integration frameworks Part 4 Reference description for Ethernet-based control systems” The control systems that support social infrastructure consist of sensors, controllers, and actuators. The sensors acquire the state of physical objects and input it to the controller, the controller calculates control command values to instruct the actuators, and the actuators act on the physical objects based on the control command values. The control system performs the desired control by, for example, periodically repeating this series of processes. Examples of such control systems include Factory Automation (FA) in factories, Process Automation (PA) in chemical plants, semiconductor manufacturing equipment, semiconductor inspection equipment, etc. Further examples include medical equipment, distributed control systems, power system control systems and power generation plants, water and sewage treatment systems, steelmaking control systems, etc. In large-scale or complex control systems, multiple sensors, controllers, and actuators are connected via a network. In such networks, control network technology is evolving to meet the requirements of the control system, such as time constraints (e.g., maximum delay), cost, reliability, and application-specific requirements. In particular, driven by the larger scale and sophistication of control systems, or recent advances in industrial IoT, the control networks that make up the control systems are required to have faster communication speeds, shorter control communication cycles, larger communication volumes, etc. Furthermore, in addition to improved communication performance, advanced data processing such as AI (Artificial Intelligence) processing and statistical processing in the control systems themselves is required to realize industrial IoT. As a method for responding to these needs, control systems that introduce Ethernet into the control network, such as Industrial Ethernet (registered trademark), are known in order to increase communication capacity. Furthermore, in such control systems, in consideration of the increasing speed and performance of embedded processors, high-performance embedded processors may be installed not only on the control device side but also on the input / output device side. However, when focusing on the configuration of such a control system, even if the communication volume between the control device and the input / output device is increased, there are problems with the exchange of data between the communication interface on the input / output device and the calculation function (such as a processor), as described below. <Issues of limited built-in RAM capacity> In general, data between a control device and an I / O device is exchanged via a data buffer on the I / O device. In other words, command values from the control device are stored in the data buffer via communication and are extracted by the calculation function (processor, etc.) of the I / O device. Similarly, sensor data from the I / O device is stored in the data buffer and transmitted to the control device via communication. At this time, when storing and retrieving data in the data buffer, it is necessary to maintain the consistency of the data on the data buffer. On the other hand, depending on the device, simultaneous access to the same address may make the stored data or read data indeterminate. Also, there are cases where consistency must be maintained for a significant area, not just one element of the data buffer. With such a requirement, for example, assume that access to a specific area of the data buffer by communication and arithmetic functions occurs almost simultaneously, and one overtakes the other in terms of the accessed address due to the difference in access speed. In this case, the overtaken side has its data updated midway, which means that data consistency has been lost. These problems become more evident as the performance of control systems improves, that is, as the communication cycle of control devices and the control cycle of input / output devices become shorter and faster. To solve these problems, a special mechanism for exclusive control is required in the data buffer. In addition, high-speed processing is required to keep up with the performance improvements of control systems. These requirements make it difficult to use external RAM (Random Access Memory) or non-volatile storage media, and instead, the use of built-in RAM with a special mechanism is favored. However, a problem with such built-in RAM is that it is generally difficult to increase the data capacity, making it difficult to respond to another requirement of the control system, the increase in input / output data. <Demand for separation of calculation functions (processors)> Another issue is that the demands on control systems are not only increasing the performance of control but also diversifying, such as the application of AI processing, etc. In order to meet such demands, it is desirable to have an input / output device with a configuration that separates communication functions and calculation functions. It is difficult to solve the above problems with the transfer memory method shown in Patent Document 1 and Non-Patent Document 1. An object of the present invention is to solve, for example, the above problems. The above and other objects and novel features of the present invention will become apparent from the description of this specification and the accompanying drawings. In one embodiment, in order to solve the above problem, a communication control device is provided that has a calculation unit that processes control data, a communication unit that transmits packets including the control data, and a data storage unit that has an exclusive control function. The calculation unit associates the positions of two or more partial data constituting the control data with attributes related to the packets communicated by the communication unit, and exchanges the partial data with the communication unit via the data storage unit. According to one embodiment, it is possible to improve communication performance and calculation performance, and also to accommodate an increase in data volume. FIG. 1 is a schematic diagram showing a configuration example of a control communication system according to an embodiment; FIG. 2 is a block diagram showing a hardware configuration example of a control device in FIG. 1; FIG. 3 is a block diagram showing a functional configuration example of a control device in FIG. 1; FIG. 4 is a block diagram showing a hardware configuration example of a controlled device in FIG. 1; FIG. 5 is a block diagram showing a functional configuration example of a communication control IC for a controlled device in FIG. 4; FIG. 5 is a block diagram showing a functional configuration example of a communication processing unit in FIG. 5; FIG. 6 is a flow diagram showing an example of a transmission procedure by the control device in FIG. 3; FIG. 5 and FIG. 6 are flow diagrams showing an example of a reception procedure by the controlled device in FIG. 6; FIG. 5 and FIG. 6 are flow diagrams showing an example of an integrated management procedure of received data by the controlled device; FIG. 5 and FIG. 6 are flow diagrams showing an example of a transmission procedure by the controlled device; FIG. 6 is a flow diagram showing an example of an integrated management procedure of transmitted data by the controlled device; FIG. 3 is a flow diagram showing an example of a reception procedure by the control device in FIG. 3; FIG. 3 is a flow diagram showing an example of a procedure in which a communication schedule composition unit determines a communication schedule; FIG. 13 is a schematic diagram showing a specific example of a communication schedule determined by the flow shown in FIG. 13; FIG. 14B is a schematic diagram showing a specific example different from FIG. 14B; FIG. 14B is a schematic diagram showing a specific example further different from FIG. 14B. FIG. 15 is a diagram for explaining a specific example of the operation of the control target device in FIG. 9. FIG. 15 is a diagram showing an example of the allocation of logical addresses to each control target device in FIG. 15A and an example of the setting of FMMU for the control target device. FIG. 15 is a diagram showing an example of the allocation of each area in the data storage unit and an example of the setting of SyncManager in the control target device shown in FIG. 15A. FIG. 15 is a diagram showing an example of the allocation of data to the integrated data storage unit by the data integration management unit in the control target device shown in FIG. 15A. FIG. 15 is a schematic diagram showing an example of a problem when an error occurs in the time management between the control device and the control target device. FIG. 6 is a time chart showing an example of the operation when the data integration management unit in FIG. 6 writes input data to the data storage unit, assuming that time synchronization is performed. FIG. 6 is a time chart showing an example of the operation when the data integration management unit in FIG. 6 writes input data to the data storage unit, assuming that time synchronization is not performed.20A is a schematic diagram showing an example of a configuration of the integrated data storage unit in FIG. 6. FIG. 21 is a block diagram showing an example of a configuration obtained by modifying the hardware configuration of the control target device shown in FIG. 4. FIG. 22A is a block diagram showing an example of a configuration obtained by modifying the hardware configuration of the control target device shown in FIG. 20A. FIG. 22B is a schematic diagram showing an example of a configuration obtained by modifying the control communication system shown in FIG. 1. FIG. 23 is a block diagram showing an example of a configuration obtained by modifying the functional configuration of the communication processing unit shown in FIG. 6. Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. In all the drawings for explaining the embodiment, the same members are generally designated by the same reference numerals, and the repeated description will be omitted. <Outline of control communication system> FIG. 1 is a schematic diagram showing an example of the configuration of a control communication system according to an embodiment. In FIG. 1, a control device (first communication control device) 120 communicates with control target devices (second communication control devices) 121a-121d via a control network 122 and controls them. In the specification, the control target devices 121a-121d are collectively referred to as the control target devices 121. In detail, the control device 120 transmits control command values to the control target devices 121 such as sensors and actuators by transmitting and receiving communication packets to the control target devices 121, obtains measured values, sensor information, etc. from the control target devices 121, and also executes various settings for the control target devices 121. The control device 120 is a device that exchanges sampling data, control commands, and status signals within each control system, such as a controller within a semiconductor manufacturing device or a semiconductor inspection device, a central control device of a distributed control system (DCS), a protection control device of a power system, etc. The control device 120 may store multiple pieces of data within the same control system in a packet. Furthermore, the control device 120 may support software virtualization technology or software container technology, and may virtualize an application or an OS (Operating System) so as to be able to manage it as a container. Specific examples of the control device 120 include a dedicated controller, an industrial personal computer, a control computer, a DCS controller, a multi-access edge computing (MEC) device, a computer cloud or server, a supervisory control and data acquisition (SCADA) server, etc. Furthermore, examples include a programmable logic controller (PLC), an intelligent electronic device (IED), a protection control device, a cloud server, etc. The controlled device 121 is a device such as a sensor or actuator, and executes device control and device setting in response to a control command received from the control device 120 via the control network 122. The controlled device 121 also acquires the state and information of the device and transmits it to the control device 120 via the control network 122. The controlled device 121 may only have a function of inputting information like a sensor, may only have a function of outputting information like an actuator, or may have both input and output functions. Specific examples of the controlled device 121 include industrial robots such as mobile robots, humanoid robots, and robot arms, AGVs (Automated Guided Vehicles), AMRs (Autonomous Mobile Robots), etc. In addition, examples of the controlled device 121 include autonomous mobile objects or remote-controlled mobile objects, chip mounters, machine tool tables, processing devices, machine tools, semiconductor manufacturing devices, and semiconductor inspection devices. Further, specific examples of the controlled device 121 include medical devices such as clinical testing devices, motors in manufacturing devices, inverters, servo amplifiers, servo motors, power devices such as circuit breakers and disconnectors, various sensors (encoders, temperature sensors, pressure sensors, etc.), etc., or dedicated controllers, industrial personal computers, control computers, DCS controllers, SCADA devices, PLCs, smartphones and communication devices equipped with wireless communication interfaces, IEDs (Intelligent Electronic Devices), MUs (Merging Units), protection and control devices, etc. The control network 122 is a network that connects the control device 120 and the controlled device 121. Specific examples of the control network 122 include networks based on IEEE 802.3 (Ethernet), including control networks such as EtherCAT (registered trademark), IEC 61784, and TSN (Time Sensitive Networking). Examples of IEEE 802.3 include standards corresponding to communication speeds such as 100 Mbps, 1 Gbps, multi-gigabit Ethernet, and 10 Gbps, and the use of jumbo frames. Specific examples of the control network 122 include a core network in a wireless network such as 5G, 6G, or 4G. Further examples include wired networks such as CAN (Controller Area Network: registered trademark), RS-232C, and USB (Universal Serial Bus: registered trademark), and various wireless networks such as Bluetooth (registered trademark). Further, examples of upper protocols in the protocol stack include communication protocols based on OPC UA (Unified Architecture), DDS (Data Distribution Service), and SBI (Service Based Interface). Alternatively, examples include REST API, HTTP / 2, OpenAPI, JSON (Java Script Object Notation) data, and IEC 61850. The above protocols may be hierarchical. For example, the OPC UA standard may be applied to the contents of the data area on the TSN. In the embodiment, EtherCAT will be described as an example. An EtherCAT network mainly has the following characteristics (a) to (c). (a) A control device 120 and a controlled device 121 are connected, and a control packet sent from the control device 120 goes around one or more controlled devices 121 in order and returns to the control device 120. Examples of the topology include a line type, a ring type, and a star type. If necessary, a relay device compatible with EtherCAT is used. (b) One control packet may include control data for each of the multiple control target devices 121. This allows the control device 120 to transmit and receive a smaller number of packets than if the control device 120 transmitted and received packets individually to each of the multiple control target devices 121. (c) When a control packet containing control commands for each of multiple control target devices 121 is sent from the control device 120, it is forwarded to each control target device 121 in order in the order of connection on the network, and then returns to the control device 120 from which it was sent. The control system 123 is composed of a control device 120, a controlled device 121, and a control network 122. Specific examples of the control system 123 include medical equipment such as semiconductor manufacturing equipment, semiconductor testing equipment, and clinical testing equipment, and control systems such as DCS for FA (Factory Automation) and PA (Process Automation). Other examples include remote control systems via wireless networks, monitoring and control systems in the power field, industrial equipment, in-vehicle systems, control systems in construction machinery and railway vehicles, railway ground signal systems, and control systems in aircraft. Alternatively, the control system 123 may be a component of these devices or systems, such as a chamber of an etching device or a sputtering device that is a semiconductor manufacturing device, a manufacturing line of an FA system, a device that constitutes a DCS, an in-vehicle system, or a partial element of an aircraft control system. The control system management device 124 is a device that connects to the control device 120 and controls and manages the control device 120. The control system management device 124, for example, sets and acquires control parameters and control policies for the control device 120 to execute control. The control system management device 124 may also divide functions of the control device 120 in terms of time resolution. That is, the control system management device 124 may control the control parameters, target values, etc. of the control device 120 in a relatively long control period compared to the control period executed by the control device 120. In another aspect, while the control device 120 executes automatic control, the control system management device 124 may be manually controlled by a system operator. Alternatively, the control system management device 124 may set the configuration of the control system 123. Specifically, this may include setting parameters and operation modes in the control device 120 and the controlled device 121. Alternatively, this may include address allocation when mapping the controlled device 121 to a logical address, and setting of the controlled device 121 related to setting of the logical address. When making these settings, the control system management device 124 may determine a datagram for setting, transfer the determined information to the control device 120, and cause the control device 120 to transmit the information. These may be executed as generation, editing, and management of EtherCAT Slave Information (ESI) and EtherCAT Network Information (ENI) in EtherCAT. In this way, when the control system management device 124 is used to set the control system 123, the setting may be performed not only in an online state in which the control system 123 is operating, but also in an offline state before the control system 123 is operated. In these settings, the connection between the control system management device 124 and the control device 120, or the control system management device 124 and the controlled device 121, may be performed only during the setting. In addition, the control system management device 124 may be directly connected to the controlled device 121 without going through the control device 120. Note that the connection referred to here includes not only a physical connection by the control network 122 or a network cable, but also a logical connection such as a communication protocol and software for setting. A specific example of the control system management device 124 may be an implementation similar to that of the control device 120. The control system management device 124 may be connected to the control device 120 via the control network 122, or may be connected to the control device 120 through a network independent of the control network 122. 1, in addition to the control system 123 having the various implementation forms described above, there is also an IoT system that uses artificial intelligence on a cloud or computer to analyze information collected via the control network 122 and improve the performance of the control system 123. These implementation forms may include local 5G, private 5G, and public 5G. <Hardware configuration of the control device 120> Fig. 2 is a block diagram showing an example of a hardware configuration of the control device 120 in Fig. 1. In Fig. 2, the CPU 101 transfers a program from the non-volatile storage medium 105 to the memory 104 and executes the program. Examples of the execution processing program include an operating system (hereinafter referred to as OS) and an application program that runs on the OS. The program that runs on the CPU 101 acquires the operation settings and status information of the communication control IC 102. The communication control IC 102 receives a transmission request and transmission data from software running on the CPU 101, and transmits the transmission data to the control network 122 using the PHY 103. In addition, the communication control IC 102 transfers data received from the control network 122 via the PHY 103 to the CPU 101, memory 104, and non-volatile storage medium 105 via the bus 106. Examples of the implementation of the communication control IC 102 include an IC such as a field programmable gate array (FPGA), a complex programmable logic device (CPLD), an application specific integrated circuit (ASIC), a gate array, etc. Alternatively, the communication control IC 102 may be configured integrally with the CPU 101. The communication control IC 102 may be configured as an IEEE 802.3 communication device including a MAC layer and a PHY layer, in which case the function of the PHY 103 may be included in the communication control IC 102. That is, examples of implementation of the communication control IC 102 include a MAC (Media Access Control) chip, a PHY (physical layer) chip, and a combined chip of MAC and PHY, which are compliant with the IEEE 802.3 standard. The communication control IC 102 may be included in the CPU 101 or a chip set that controls an information path inside the computer. Although one communication control IC 102 is shown in the configuration of FIG. 2, the number of communication control ICs 102 may be multiple. The PHY 103 is a transceiver IC that implements a communication function with the control network 122. An example of a communication standard provided by the PHY 103 is a PHY (physical layer) chip of IEEE 802.3. In the configuration of Fig. 2, since the PHY 103 and the communication control IC 102 are connected, the processing of the MAC (Media Access Control) layer of IEEE 802.3 is included in the communication control IC 102. However, a configuration in which an IC providing a MAC function is disposed between the communication control IC 102 and the PHY 103, or a configuration in which a communication IC combining an IC providing a MAC function and the PHY 103 is connected to the communication control IC 102 may be used. The PHY 103 may be included in the communication control IC 102. Also, one PHY 103 is shown in the configuration of Fig. 2. The quantitative relationship between the communication control IC 102 and the PHY 103 may be one or more PHYs 103 for one communication control IC 102. The memory 104 is a temporary storage area for the operation of the CPU 101, and stores the OS, application programs, etc. transferred from the non-volatile storage medium 105. The non-volatile storage medium 105 is an information storage medium, and is used to store the OS, applications, device drivers, etc., programs for operating the CPU 101, and the results of program execution. Examples of the non-volatile storage medium 105 include a hard disk drive (HDD), a solid state drive (SSD), and a flash memory. Examples of easily removable external storage media include a floppy disk (FD), a CD, a DVD, a Blu-ray (registered trademark), a USB memory, and a compact flash. The bus 106 connects the CPU 101, the communication control IC 102, the memory 104, and the non-volatile storage medium 105. Examples of the bus 106 include a PCI bus, an ISA bus, a PCI Express bus, an on-chip bus, a system bus, and a memory bus. <Functional configuration of the control device 120> Fig. 3 is a block diagram showing an example of a functional configuration of the control device 120 in Fig. 1. In Fig. 3, a calculation unit 160 executes control calculations, information processing calculations, etc. Examples of such calculations include processing sensor information received from the controlled device 121 based on a predetermined control law and calculating a control command for driving the controlled device 121. Alternatively, examples include filter processing or statistical processing applied to sensor values, and statistical processing of a set of sensor values in a predetermined past period. Examples of the predetermined control law include control processing based on control engineering theory and AI, such as feedback control and feedforward control. For example, examples include control methods that can change the state depending on past information, such as I (integral) control and control using a state machine. Examples also include statistical processing such as state management (detection of failures and dangerous states) for the controlled device 121, equipment management and asset management (software version management and updates, etc.), preventive maintenance, CBM (Condition Based Maintenance), and AI and machine learning processing for the purpose of remaining life prediction. In addition, if the controlled device 121 is a moving body, the predetermined control law may be exemplified by determining the moving direction or the target moving position, speed control, acceleration control, stopping, deceleration, etc. If the controlled device 121 is an industrial robot arm, the predetermined control law may be exemplified by control commands for the motors of each articulated joint, control of the tip position of the robot arm, or trajectory control of the robot arm. As described above, the controlled device 121 is diverse and may be not only an actuator but also a simple sensor, so the calculation unit 160 executes control according to the type of the controlled device 121. The calculation unit 160 may be exemplified by the CPU 101 or an application that operates on the CPU 101. The transmission data storage unit 161 is a functional unit that stores data to be transmitted. The transmission data storage unit 161 holds data generated by the calculation unit 160 when executing predetermined control or information processing for individual or multiple control target devices 121. The held data is extracted by the communication schedule unit 162. The transmission data storage unit 161 may manage data in units of communication cycles or control cycles determined by the control or information processing executed by the calculation unit 160 and the control target device 121. The transmission data storage unit 161 is, for example, implemented as either the memory 104 or the non-volatile storage medium 105, or both. The communication scheduler 162 extracts data from the transmission data storage unit 161 at a predetermined timing, processes the data as necessary, and transfers it to the transmitter 167. An example of data processing is shaping the data into a communication format defined by the communication protocol of the control network 122. An example of shaping the data into the communication format is adding a header and FCS. At this time, information required for shaping the data into the communication format may be held in the communication scheduler 162. Such information may be header parameters defined by the communication format. The communication schedule unit 162 may be notified of the communication schedule from the communication schedule configuration unit 164, and may divide or combine data extracted from the transmission data storage unit 161 according to the communication schedule. Furthermore, the communication schedule unit 162 may determine parameters such as a header according to the communication schedule configured by the communication schedule configuration unit 164. Therefore, the constituent unit of the data stored in the transmission data storage unit 161 and the constituent unit of the data transferred by the communication schedule unit 162 to the transmission unit 167 may be different. Furthermore, the communication schedule unit 162 may determine the timing of transferring the shaped data to the transmission unit 167 in accordance with the communication schedule constructed by the communication schedule construction unit 164. The communication schedule unit 162 is configured by any one or more of the CPU 101 or an application running on the CPU 101, the communication control IC 102, and the PHY 103. The control system information storage unit 163 stores information on the control system 123. Specifically, examples of the information to be stored include processing requirements for control processing and information processing executed on the control system 123, and configuration requirements for the control device 120 and the controlled device 121. Examples of such requirements include a control period, a communication period, and an input / output capacity of the controlled device 121. Alternatively, examples of the processing requirements and configuration requirements include the number of control devices 120 and controlled devices 121, the specifications and performance of computer resources, communication performance, and the configuration of the communication network. Further examples include the frequency and number of cores of the CPU 101, the bit width, and architecture, the storage capacity and communication throughput of the memory 104 and non-volatile storage medium 105, the transfer throughput of the bus 106, the communication bandwidth and connection distance of the control network 122, and the like. Computer resources such as the CPU, memory, and non-volatile storage medium include both the control device 120 and the controlled device 121. If the control network 122 includes a relay device, the computer resources and communication performance of the relay device are included. The control system information storage unit 163 may manually input information to be stored by a system operator or may dynamically collect information on the control device 120, the controlled device 121, and the control network 122 using information collection software or a predetermined communication protocol. Examples of such a communication protocol include SNMP (Simple Network Management Protocol) and access to a predetermined register (e.g., a register indicating the model number of a slave IC) in EtherCAT. The control system information storage unit 163 is configured by combining the memory 104 or the non-volatile storage medium 105 with either the CPU 101 or an application running on the CPU 101, or both. The communication schedule configuration unit 164 configures a communication schedule based on the information stored in the control system information storage unit 163, and notifies the communication schedule unit 162. The communication schedule configuration unit 164 cooperates with a logical address determination unit 165 and a datagram configuration determination unit 166 to configure the communication schedule. The communication schedule constructed by the communication schedule construction unit 164 includes information on the allocation of the address space of each control target device 121 to the logical address space, which is also a virtual area, information on the size of datagrams, information on the logical address of the access destination and command, and information on the transmission timing and communication cycle. The communication schedule construction unit 164 is constructed by any one or more of the CPU 101 or an application operating on the CPU 101, the communication control IC 102, and the PHY 103. The logical address determination unit 165 determines the allocation of the address space of each control target device 121 to a logical address space based on the information stored in the control system information storage unit 163. This address space allocation can be performed multiple times in response to requests and feedback from the communication schedule configuration unit 164 and the datagram configuration determination unit 166. The method using logical address space is a method of allocating inputs and outputs of actuators and sensors in a predetermined address space. In the method using logical address space, any data area (i.e., physical inputs and outputs) of each slave is allocated to a single virtual logical address space. The size of the area and the allocation method can be freely set. The logical address determination unit 165 is composed of one or more of the CPU 101 or an application running on the CPU 101, the communication control IC 102, and the PHY 103. The datagram configuration determination unit 166 determines the configuration of the datagram to be transmitted by the communication schedule unit 162, based on the information stored in the control system information storage unit 163 and the allocation of the logical address space determined by the logical address determination unit 165. Examples of the datagram configuration determined by the datagram configuration determination unit 166 include the size of each datagram and parameters on the header (such as the logical address space to be accessed). The logical address space to which the physical address space of a certain control target device 121 is assigned may be accessed not only by a single datagram but also by datagrams divided into multiple datagrams. The datagram configuration determination unit 166 is configured by any one or more of the CPU 101 or an application running on the CPU 101, the communication control IC 102, and the PHY 103. The transmitter 167 is a transmission function unit that transmits packets from the control device 120 to the control network 122. The transmitter 167 is, for example, configured by either the communication control IC 102 or the PHY 103, or both. The receiving unit 168 is a receiving function unit, and receives a packet from the control network 122. The receiving unit 168 may verify a Frame Check Sequence (FCS) to determine the validity of the received packet, or may discard a received packet determined to be abnormal. The receiving unit 168 may be configured, for example, by either the communication control IC 102 or the PHY 103, or both. The received data integration management unit 169 determines the storage position on the received data storage unit 170 for the received data transferred from the receiving unit 168, and transfers the data to the received data storage unit 170. At this time, since the received packet is in a format defined by the communication protocol of the control network 122, the received data integration management unit 169 may extract necessary headers and data portions. The received data integration management unit 169 is composed of one or more of the CPU 101 or an application operating on the CPU 101, the communication control IC 102, and the PHY 103. The received data storage unit 170 is a functional unit that stores received data. The received data storage unit 170 receives the results of execution of a predetermined control or information processing from an individual or multiple controlled devices 121, and stores the results as data. The stored data is extracted by the calculation unit 160. The received data storage unit 170 may manage data in units of a communication cycle or a control cycle determined by the control or information processing executed by the calculation unit 160 and the controlled device 121. The received data storage unit 170 is, for example, implemented as either the memory 104 or the non-volatile storage medium 105, or both. The clock unit 171 is a functional unit that manages the passage of time. The clock unit 171 measures the elapsed time of events within each functional unit in FIG. 3 or between functional units, and clocks the occurrence time of a specific event. The time may be an absolute time based on a global positioning system (GPS) or the like, the time of the control device 120 itself, or a synchronized time based on a reference time within the control system 123. For example, in EtherCAT, the control target device 121 that corresponds to the Distributed Clock protocol (DC) and is closest to the control device 120 may be used as the reference time. Events that are the subject of measurement by the timekeeping unit 171 include a specific communication frame, the sending time of a datagram, the receiving time, the data transfer time between functional units, the data processing time within a functional unit, or the data retention period. Alternatively, the timekeeping unit 171 generates an interrupt when a specified time has elapsed or when a specified time has been reached, and notifies other functional units of this. At this time, the timekeeping unit 171 may periodically generate and notify the interrupt. An example of the implementation of the timekeeping unit 171 is a timekeeping device (a crystal oscillator or a timer device) of the CPU 101 or the communication control IC 102, and the memory 104 or the non-volatile storage medium 105 may be used as a means for storing the measured time. In FIG. 3, one transmitting unit 167 and one receiving unit 168 are shown, but if a plurality of communication control ICs 102 and PHYs 103 are provided, a plurality of transmitting units 167 and a plurality of receiving units 168 may be included. <Hardware Configuration of Control Target Device 121> Fig. 4 is a block diagram showing an example of a hardware configuration of the controlled device 121 in Fig. 1. Here, a description will be given of an example of the controlled device 121 conforming to the EtherCAT specification defined in Communication Profile Family 12 of IEC 61158 and IEC 61784 Part 2. However, the controlled device 121 is not limited to the EtherCAT specification. 4, a CPU 101 controls a communication control IC 130 for a controlled device via a bus 106. Although not shown in the figure, the CPU 101 may control sensors and actuators via peripheral devices connected to the CPU 101. The communication control IC 130 for the controlled device communicates with the control network 122 through a plurality of PHYs 103a-103d. In the specification, the plurality of PHYs 103a-103d are collectively referred to as PHY 103. The communication control IC 130 for the controlled device is a dedicated IC that complies with the EtherCAT specification defined in Communication Profile Family 12 of IEC 61158 and IEC 61784 Part 2. The communication control IC 130 for the controlled device may use a non-volatile storage medium 105 for storing and referencing information necessary for communication. The control target device communication control IC 130 is connected to the CPU 101 via a bus 106, but may be directly connected to the CPU 101 using a dedicated bus. In addition, either or both of a memory 104 and a non-volatile storage medium 105 dedicated to the control target device communication control IC 130 may be provided separately to store information required for processing by the control target device communication control IC 130. The input / output device 131 is an input / output interface for acquiring sensor values from sensors constituting the controlled device 121 and for controlling actuators constituting the controlled device 121. Examples of the input / output device 131 include various actuators such as motors, various sensors (encoders, temperature sensors, pressure sensors, image sensors, cameras, etc.), various digital input / output and analog input / output ICs, driver ICs, etc. 4 shows one signal line from the input / output device 131, but multiple lines may be provided depending on the configuration of the controlled device 121. Also, the configuration may include multiple input / output devices 131. The input / output device 131 may only input information to a connected sensor, may only output information to a connected actuator, or may have both input and output functions. Also, any one or more of the CPU 101, memory 104, and non-volatile storage medium 105 may be included in the controlled device communication control IC 130 to form a one-chip type communication control IC. <Functional configuration of the control target device communication control IC 130> Fig. 5 is a block diagram showing an example of a functional configuration of the control target device communication control IC 130 in Fig. 4. In Fig. 5, four sets of communication port functions are provided by combining a plurality of communication transfer control units 141a-141d and a plurality of communication units 142a-142d. In the specification, the plurality of communication transfer control units 141a-141d are collectively referred to as communication transfer control unit 141, and the plurality of communication units 142a-142d are collectively referred to as communication unit 142. Note that the number of communication ports is not limited to four sets. The communication processing unit 140 is connected between the communication transfer control unit 141a and the communication transfer control unit 141d related to the two communication port functions. The communication processing unit 140 is an IC that performs communication processing in accordance with the EtherCAT specification, and an EtherCAT Processor Unit (EPU) is exemplified as an implementation. The communication processing unit 140 may be configured by connecting it to other calculation functions and input / output functions. The communication transfer control unit 141 is a functional unit that transfers a received packet to an adjacent communication transfer control unit 141 or a paired communication unit 142. The transfer direction between the communication transfer control units 141 is fixed within the controlled device communication control IC 130, and is in the order of communication transfer control units 141a, b, c, and d. In addition, the communication transfer control unit 141 transfers the packet to the communication unit 142 or to an adjacent communication transfer control unit 141, depending on the setting from the communication processing unit 140 and the connection state of the communication path to which the communication unit 142 connects. The communication unit 142 is a functional unit that connects to the control network 122 and communicates in accordance with the communication protocol of the control network 122. In detail, the communication unit 142 is configured by a transmission unit 167 and a reception unit 168 similar to those in Fig. 3. The communication unit 142 may be configured by either the control target device communication control IC 130 or the PHY 103, or both. The input / output unit 143 is an input / output function for acquiring sensor values from sensors constituting the control target device 121 and for controlling actuators constituting the control target device 121. The input / output unit 143 is, for example, configured with the input / output device 131. The bus 144 is a communication line for connecting to any one or more of the CPU 101, the memory 104, the non-volatile storage medium 105, and the input / output device 131, and is, for example, configured with the bus 106. Fig. 6 is a block diagram showing an example of a functional configuration of the communication processing unit 140 in Fig. 5. In Fig. 6, the communication connection unit 150 is a functional unit for connecting the communication processing unit 140 and the communication transfer control unit 141. In Fig. 6, one line is shown as a communication line to the external communication transfer control unit 141, but a set of communication lines is provided for the number of communication transfer control units 141 to be connected. Meanwhile, the communication connection unit 150 is internally connected to an address conversion unit 151 and an access exclusive control unit 152. The communication connection unit 150 may directly access the data storage unit 153. The communication connection unit 150 is exemplified as being configured by a bus 106. The address conversion unit 151 is a functional unit that converts addresses between two different address systems. For example, in EtherCAT, conversion between logical addresses and physical addresses is exemplified. The address conversion unit 151 connects to the communication connection unit 150 and the access exclusive control unit 152, and refers to the EtherCAT datagram on the communication packet transmitted from the communication connection unit 150. The address conversion unit 151 converts the logical addresses on LRD (Logical Memory Read), LWR (Logical Memory Write), and LRW (Logical Memory Read Write), which are commands that specify logical addresses in the datagram, into physical addresses on the data storage unit 153. The rule for conversion between logical addresses and physical addresses is set in advance, for example, by communication via the control network 122 or by an application running on the CPU 101 of the controlled device 121. The address conversion unit 151 may directly access the data storage unit 153. For example, the address conversion unit 151 may be configured by the controlled device communication control IC 130. The access exclusive control unit 152 is connected to the communication connection unit 150, the address conversion unit 151, the data storage unit 153, and the data integration management unit 154, and executes exclusive control between input (write) and output (read) access to the data storage unit 153. An example of the access exclusive control unit 152 is SyncManager in EtherCAT. The access exclusive control unit 152 integrates and manages a plurality of areas on the data storage unit 153, and automatically converts input access and output access into access to an exclusive area so that simultaneous input and output access is possible. This allows simultaneous input and output access to the data storage unit 153 to be executed without delay. The access exclusion control unit 152 performs exclusive control over an area consisting of multiple entries, rather than over one entry specified by one address in the data storage unit 153. The access exclusion control unit 152 may directly access the calculation unit 160. For example, the access exclusion control unit 152 may have a notification means for issuing an interrupt or the like to the calculation unit 160 or the data integration management unit 154 regarding events including completion of input or output. The access exclusion control unit 152 is, for example, configured by the communication control IC 130 for the controlled device. The data storage unit 153 is a functional unit that stores predetermined settings and data. Examples of information stored in the data storage unit 153 include setting information and status information for the operation of the communication control IC 130 for the controlled device and the communication processing unit 140, and information exchanged between the control device 120 and the controlled device 121 (e.g., control command values and sensor information acquired by an input device). The data storage unit 153 is, for example, configured with one or more of the communication control IC 130 for the controlled device, the memory 104, and the non-volatile storage medium 105. The data integration management unit 154 is connected to the calculation unit 160, the access exclusion control unit 152, and the integrated data storage unit 155, and integrates and manages data acquired from the data storage unit 153 via the access exclusion control unit 152 or data acquired from the calculation unit 160 in the integrated data storage unit 155. Furthermore, as a process in the reverse direction, the data integration management unit 154 outputs data acquired from the integrated data storage unit 155 to the calculation unit 160 or the data storage unit 153. The data integration management unit 154 may be configured, for example, by any one or more of the CPU 101 or an application running on the CPU 101, the memory 104, the non-volatile storage medium 105, and the communication control IC 130 for the controlled device. When the data integration management unit 154 is configured by an application on the CPU 101, it may be configured by an interrupt task or a general task. This includes a delay task or a periodic task that is started by an interrupt. Alternatively, an IC (such as a bus controller, an ASIC, an FPGA, or a CPLD) not shown in the figure may be included in the hardware configuration of the controlled device 121 in FIG. 4, and the data integration management unit 154 may be configured in the IC. The integrated data storage unit 155 is a functional unit that is connected to the data integration management unit 154 and stores data that is integrated and managed by the data integration management unit 154. The integrated data storage unit 155 is, for example, configured with either the memory 104 or the non-volatile storage medium 105, or both. The time synchronization unit 156 executes a time synchronization procedure and synchronizes the time of the control target device 121 with a predetermined reference time. Examples of time synchronization means to be executed include the Distributed Clock protocol of EtherCAT, IEEE 802.1AS, IEEE 1588, and wireless time synchronization methods such as NTP, SNTP, GPS, and 5G. The time synchronization unit 156 is, for example, configured with one or more of the CPU 101 or an application running on the CPU 101, the PHY 103, and the communication control IC 130 for the control target device. <Transmission procedure of the control device 120> Fig. 7 is a flow diagram showing an example of a transmission procedure by the control device 120 in Fig. 3. In Fig. 7, the calculation unit 160 first waits for the start timing of the calculation process of the application (step S001). The execution start timing of the calculation process may be a timing at which the calculation process is started at a predetermined cycle, or may be a timing notified periodically by the timer unit 171. Alternatively, it may be a timing based on an interrupt notification from the communication control IC 102 to the CPU 101. In terms of the functional units, any one or more of the transmission data storage unit 161, communication schedule unit 162, control system information storage unit 163, communication schedule configuration unit 164, transmission unit 167, reception unit 168, received data integration management unit 169, received data storage unit 170, and timing unit 171 notify the calculation unit 160 of an interrupt. In response to this, the calculation unit 160 starts a control application. Examples of the timing of an interrupt from the communication control IC 102 to the CPU 101 or an interrupt from the functional units in FIG. 3 to the calculation unit 160 are as follows: When the timer unit 171 periodically interrupts at a predetermined cycle, when a predetermined time is reached, or when a predetermined period of time has elapsed When updating or extracting information held in the transmission data storage unit 161 When the communication schedule is updated by the communication schedule unit 162, and when the transfer of communication data is started or completed. When updating the stored information by the control system information storage unit 163 When the communication schedule composition unit 164 determines a communication schedule or when notification to the communication schedule unit 162 is completed When the transmission unit 167 starts or completes transmission of communication data When the receiving unit 168 starts or finishes receiving data When the extraction of datagrams by the received data integration management unit 169 starts or ends, when the transfer of received data from the receiving unit 168 starts or ends, and when the transfer of data to the received data storage unit 170 starts or ends When updating or extracting information stored in the received data storage unit 170 Each functional unit may generate an interrupt limited to predetermined communication data, for example, by a predetermined communication partner (control target device 121), a predetermined type of calculation, a data size (for example, a comparison with a predetermined threshold value), or a processing timing or processing time. When it is time to start the calculation process in step S001 (Y in step S001), the calculation unit 160 executes the calculation process (step S002). Examples of such calculation processes include calculation of an output command value based on sensor information acquired by the input / output device 131 and the input / output unit 143 of the controlled device 121, statistical processing of AI or the like for applying IoT, and determination of setting information for the controlled device 121. Next, the calculation unit 160 writes the transmission data determined and generated in step S002 to the transmission data storage unit 161 (step S003). Then, the communication schedule unit 162 waits for the transmission timing (step S004). The transmission timing follows the communication schedule determined by the communication schedule configuration unit 164. In step S004, when the transmission timing arrives (Y in step S004), the communication schedule unit 162 transmits the transmission data to the control network 122 via the transmission unit 167 (step S005). Thereafter, the communication scheduler 162 determines whether the transmission of the predetermined set is completed (step S006). When determining whether the transmission of the predetermined set is completed, the communication scheduler 162 may determine that the transmission is completed after a predetermined number of repetitions of transmission, or may determine that the transmission is completed when the total transmission data size is equal to or larger than a predetermined value. Alternatively, the communication scheduler 162 may determine that the transmission is completed when the predetermined communication content is transmitted. If it is determined in step S006 that the transmission of the predetermined set has been completed (Y in step S006), the control device 120 determines whether the termination condition has been satisfied (step S007). If the termination condition has been satisfied (Y in step S007), the control device 120 terminates the process. Examples of the termination condition include reaching a predetermined time, elapse of a predetermined period of time, execution of a predetermined number of transmissions, or the number of transmissions of the predetermined set reaching a threshold value. Alternatively, the termination condition may be, for example, that the control system 123 has completed execution of a predetermined control procedure or that a predetermined control performance has been reached. Alternatively, the termination may be explicitly instructed by a system operator or the like. Alternatively, the termination may be determined based on an abnormality or change occurring in any one or more of the control device 120, the controlled device 121, the control network 122, and the control system 123. For example, the occurrence of a serious abnormality or accident that makes it difficult to continue executing the control system 123, and a safe shutdown may be exemplified. If it is determined in step S006 that the transmission of the predetermined set has not been completed (N in step S006), the process returns to step S004. Also, if the end condition is not satisfied in step S007, the process returns to step S001. Note that steps S001 to S003 are mainly performed by the calculation unit 160, and steps S004 to S006 are mainly performed by the communication schedule unit 162. Therefore, steps S001 to S003 and steps S004 to S006 may be performed in parallel or in parallel. <Reception Procedure of Control Target Device 121> Fig. 8 is a flow diagram showing an example of a receiving procedure by the controlled device 121 in Fig. 5 and Fig. 6. First, the communication unit 142 and the communication transfer control unit 141 wait for reception of a packet via the control network 122 (step S010). If a packet is received in step S010 (Y in step S010), the communication connection unit 150 extracts a datagram constituting the received packet (step S011). Next, the communication connection unit 150 judges whether the address in the header of the datagram extracted in step S011 is a translation target address (step S012). The translation target address is, for example, a logical address. In addition to the logical address, the communication connection unit 150 may determine whether the address is a translation target address based on a rule that converts a specific address into a physical address on the control target device 121. In step S012, if the address in the datagram header is an address to be translated (Y in step S012), the address translation unit 151 translates the address (step S013). An example of this translation is a translation from a logical address to a physical address. After step S013, or in step S012, if the address in the datagram header is not an address to be translated (N in step S012), the access exclusivity control unit 152 writes the data of the received datagram to the data storage unit 153 while exclusively controlling access to the data storage unit 153 (step S014). Then, the access exclusion control unit 152 notifies the data integration management unit 154 of the completion of writing to the data storage unit 153 (step S015). The notification of the completion of writing may be an interrupt signal, or may be made by changing a predetermined register to a predetermined value. In the latter case, the data integration management unit 154 can detect the completion of writing to the data storage unit 153 by the access exclusion control unit 152 by polling access to the register. Then, the controlled device 121 judges whether or not the processing of all datagrams in the received packet has been completed (step S016). At this time, the controlled device 121 may judge whether or not there is remaining received data, or may judge that the processing of all datagrams has been completed if the MORE bit in the header of the datagram that has been written to the data storage unit 153 is 0 (i.e., the last datagram). If it is determined in step S016 that the processing of all datagrams has been completed (Y in step S016), the process ends. If it is determined in step S016 that the processing of all datagrams has not been completed (N in step S016), the process returns to step S011. Note that the flow in Fig. 8 is executed every time a packet is received. Also, the completion of writing in step S015 may be notified in units of packets, not in units of datagrams. <Integrated management procedure when the controlled device 121 receives a signal> Fig. 9 is a flow diagram showing an example of the procedure for integrated management of received data by the control target device 121 in Fig. 6. First, the data integrated management unit 154 waits until the data in the data storage unit 153 is updated (step S020). If the data in the data storage unit 153 is updated (Y in step S020), the data integrated management unit 154 determines whether the update is valid (step S021). In step S021, the data integration management unit 154 determines whether or not update data associated with a packet is valid, based on information on the packet, the communication timing of the packet, etc. Specifically, the data integration management unit 154 makes the determination, for example, based on the following determination criteria A1 or A2, or a combination of these. Criterion A1: When the communication cycle of the control device 120 is constant, whether or not the reception time in the controlled device 121 has elapsed more than the communication cycle since the previous reception time. For example, when the communication cycle of the control device 120 is 100 microseconds and the reception time in the controlled device 121 is 200 microseconds since the previous reception time, it is considered that there are packets that have not been received due to packet loss or the like. On the other hand, if the elapsed time is 100 microseconds, it can be determined that data has been received continuously and the updated data is valid. When there is a fluctuation in the processing time of the control device 120 or the controlled device 121 and the communication time of the control network 122, an example is to add a predetermined margin to the threshold value of the elapsed time. Criterion A2: When sequence numbers or transmission times in the control device 120 are provided on the received data, whether or not they match the values on the previously received data. For example, if the sequence numbers are not consecutive or the difference in transmission times exceeds a predetermined value, the update data is considered invalid, and if not, the update data can be determined to be valid. The time here may be a synchronized time using a synchronization protocol such as DC, or may be the time in the control device 120. If it is determined in step S021 that the update data is valid (Y in step S021), the data integration management unit 154 determines an allocation position on the integrated data storage unit 155 (step S023). Then, the data integration management unit 154 allocates the received data to the position on the integrated data storage unit 155 determined in step S023 (step S024). Then, the data integration management unit 154 judges whether the integrated data area of the integrated data storage unit 155, in other words, the control data on the integrated data area, is valid (step S025). At this time, the data integration management unit 154 may judge whether the integrated data area is valid based on whether the number of datagrams or the number of repeated receptions of packets is equal to or greater than a predetermined value, or may judge based on whether the total received data size is equal to or greater than a predetermined value. Alternatively, the data integration management unit 154 may judge completion when it receives a predetermined communication content. If the integrated data area is valid in step S025 (Y in step S025), the data integration management unit 154 validates the integrated data area of the integrated data storage unit 155 (step S026). Furthermore, if it is determined in step S021 that the update data is invalid (N in step S021), the data integration management unit 154 executes a corresponding process (step S022). An example of the corresponding process is to notify the calculation unit 160, the access exclusive control unit 152, and the communication connection unit 150 (connection to the data integration management unit 154 is not shown) of the control target device 121 that the update data is invalid. An example of the notification means is an interrupt. Alternatively, examples of the corresponding process include invalidating an area that has already been received and allocated in the integrated data storage unit 155, or invalidating received data that is scheduled to be received in the future. That is, the criterion for determining whether the update data in step S021 is valid includes the presence or absence of the invalidation process in step S022. Specifically, if the next packet is received after the integrated data storage unit 155 is updated based on the first packet, and the update of the data storage unit 153 associated with the next packet is invalid, the update based on the first packet is also retroactively invalidated. Another example is invalidating the invalidation process itself after receiving a predetermined number of packets or datagrams, or after a predetermined time or period has elapsed. Such processing is also included in the corresponding processing of step S022 and each of the subsequent steps. Alternatively, invalidation of the invalidation process may be performed independently or in parallel with the procedure shown in FIG. 9. After steps S026 and S022, or if the integrated data area is not valid in step S025 (N in step S025), the controlled device 121 determines whether to end the process (step S027). The determination of the end condition is the same as step S007 in Fig. 7. In addition, the end may be determined based on the processing result in step S022. For example, the end may be determined when the number of invalidations exceeds a predetermined value. The response process in step S022 (such as invalidating an area in the integrated data storage unit 155) is executed starting from the data update in step S020. However, in consideration of the possibility of a communication abnormality in the control network 122, the response process may be executed a predetermined time (timeout) after an event such as the immediately preceding data update, packet reception, or allocation to an area in the integrated data storage unit 155. In step S023, the data integration management unit 154 may determine the allocation position based on the order of reception or the reception time. For example, the communication cycle, in other words, the communication timing of the packet, is shared in advance between the control device 120 and the control target device 121, so that the control target device 121 can determine which cycle of communication has occurred since the reception time. In this case, the start time may be shared between the control device 120 and the control target device 121, or the time when the control target device 121 first receives the packet after starting processing may be stored in the control target device 121 as the start time. Note that mailbox communication may be used to share information between the control device 120 and the control target device 121. Alternatively, the data sender, in this case, for example, the control device 120, may store information specifying which communication it is and the allocation position in advance in the communication data. This may be done by using information such as a header, or by using a data area in a packet or datagram. Alternatively, the data sender may store address information indicating the allocation position in integrated data storage unit 155 in a data area in a packet or datagram in advance. In this case, if the physical address of the built-in RAM of the EtherCAT slave is 16 bits (64 kB) and it is expected to have the effect of using a space larger than the built-in RAM as the integrated data area, the bit width of the address must be greater than 16 bits. In addition, when the integrated data area of the integrated data storage unit 155 is enabled in step S025, the data integration management unit 154 may notify the calculation unit 160 of the enablement by an interrupt or the like, or may transfer the enabled data to the calculation unit 160. Therefore, the integrated data storage unit 155 may have multiple integrated data areas for received data as well. This makes it possible to switch the integrated data area before and after it is determined that the integrated data area is enabled in step S025. Furthermore, the multiple integrated data areas may be configured, for example, by a ring buffer. Fig. 21 is a schematic diagram showing a configuration example of the integrated data storage unit 155 in Fig. 6. As shown in Fig. 21, when the integrated data storage unit 155 is configured by a ring buffer, the data integration management unit 154 manages the write position and the read position for the multiple integrated data areas. In steps S025 and S026, the data integration management unit 154 may activate only a partial area and invalidate the area where data has not been received, instead of waiting until all necessary data is available. In this case, for example, when the calculation unit 160 accesses an area where data has not been received, an error is generated. <Transmission Operation of Control Target Device 121> Fig. 10 is a flow diagram showing an example of a transmission procedure by the control target device 121 in Fig. 5 and Fig. 6. In Fig. 10, first, the calculation unit 160 waits for the start timing of the calculation process of the application (step S030). The execution start timing of the calculation process may be a timing when the calculation unit 160 is started at a predetermined cycle, or a timing when the calculation unit 160 is notified periodically by the time synchronization unit 156 or a timer (not shown). Alternatively, the calculation unit 160 may be started by a notification from each functional unit shown in Fig. 6 to the calculation unit 160 (connections between some functional units and the calculation unit 160 are not shown). The following are examples of notification timing from the functional units illustrated in FIG. 6 to the calculation unit 160. When a packet is received, transmitted, or transferred by the communication connection unit 150 When address translation by the address translation unit 151 starts or ends When the access exclusive control unit 152 writes data to or reads data from the data storage unit 153, or when the access exclusive control unit 152 starts or completes data transfer to or from the data integration management unit 154 When updating or extracting data stored in the data storage unit 153 When the data integration management unit 154 starts or completes data transfer with the access exclusive control unit 152 or the calculation unit 160 When the data integration management unit 154 writes data to the integrated data storage unit 155, when data is read from the integrated data storage unit 155, or when an integrated data area in the integrated data storage unit 155 is enabled or disabled When the time synchronization unit 156 interrupts at a predetermined cycle, when a predetermined time is reached, or when a predetermined period of time has elapsed 6 may generate a notification by limiting the data to a specific one, for example, by a specific type of calculation, a data size (e.g., a comparison with a specific threshold value), or a processing timing or processing time. In step S030, when it is time to start the calculation process (Y in step S030), the calculation unit 160 acquires data from the integrated data storage unit 155 via the data integration management unit 154 (step S031). Next, the calculation unit 160 executes the calculation process based on the acquired data (step S032). Then, if the calculation unit 160 calculates an output value by the calculation process, it outputs the output value (step S033). The output value is used, for example, to control an actuator or the like. Next, the calculation unit 160 acquires input information from the input / output unit 143 shown in Fig. 5, which corresponds to the input / output device 131 such as a sensor, via the bus 144 (step S034). The calculation unit 160 transfers the acquired input information to the data integration management unit 154, which then writes the transferred data to the integrated data storage unit 155 (step S035). Then, the process ends. 10, a series of processes are executed in sequence, but some or more of steps S031, S032, S033, S034, and S035 may be executed in parallel. If the controlled device 121 does not have an output device such as an actuator, step S033 may not be executed. Similarly, if the controlled device 121 does not have an input device such as a sensor, step S034 may not be executed. <Integrated management procedure when the controlled device 121 transmits> Fig. 11 is a flow diagram showing an example of the procedure for integrated management of transmission data by the control target device 121 in Fig. 6. In Fig. 11, first, the data integrated management unit 154 waits until the data in the integrated data storage unit 155 is updated (step S040). When the data in the integrated data storage unit 155 is updated (Y in step S040), the data integrated management unit 154 divides the data (step S041). Next, the data integration management unit 154 waits for the timing to transfer the data divided in step S041 (step S042). When the timing to transfer arrives in step S042 (Y in step S042), the data integration management unit 154 transfers the divided data to the access exclusion control unit 152 (step S043). Then, the data integration management unit 154 judges whether the transfer of the predetermined set of divided data has been completed (step S044). If it is judged in step S044 that the transfer of the predetermined set of divided data has been completed (Y in step S044), the controlled device 121 judges whether the termination condition has been satisfied (step S045). If the termination condition has been satisfied (Y in step S045), the process is terminated. The determination of the termination condition is the same as step S007 in FIG. 7. The data transferred to the exclusive access control unit 152 in step S043 can be acquired by the control unit 120 through communication using a read command from the control unit 120. If it is determined in step S044 that the transfer of the predetermined set of divided data has not been completed (N in step S044), the process returns to step S042. Also, if the end condition is not satisfied in step S045 (N in step S045), the process returns to step S040. After step S040, the data integration management unit 154 may monitor and compare the data transfer timing and the like to determine whether the update data to the integrated data storage unit 155 by the calculation unit 160 is valid. If the update data is not valid, the data integration management unit 154 may issue an interrupt notification to the calculation unit 160, a notification to the control device 120, or other notification to the outside. The division of the data in step S041 may be, for example, equal division into a number determined in advance. The data integration management unit 154 may also associate attributes of each piece of data divided in step S041 with each piece of data. Examples of such attributes include the position of the divided data in the whole, the size of the divided data, and an identifier or sequence number for identifying the divided data. An area may also be provided on the divided data to hold the attributes. Furthermore, in steps S043 and S044, the data integration management unit 154 may notify the calculation unit 160 of the start of data transfer, the completion of transfer, and the completion of a predetermined set by using a means such as an interrupt. <Reception operation of the control device 120> Fig. 12 is a flow diagram showing an example of a reception procedure by the control device 120 in Fig. 3. In Fig. 12, first, the receiving unit 168 waits to receive a packet (step S050). If a packet is received in step S050 (Y in step S050), the received data integration management unit 169 judges whether the received data is valid (step S051). The received data integration management unit 169 judges whether the received data is valid, for example, based on any one of the following judgment criteria B1 to B5, or a combination of multiple criteria. Criterion B1: When the communication cycle of the control device 120 is constant, whether the reception time at the control device 120 has elapsed more than the communication cycle since the previous reception time. For example, when the communication cycle of the control device 120 is 100 microseconds and the reception time at the control device 120 has elapsed 200 microseconds since the previous reception time, it is considered that there are packets that have not been received due to packet loss or the like. On the other hand, if the elapsed time is 100 microseconds, data can be received continuously, and it can be determined that the received data is valid. When there is a fluctuation in the processing time of the control device 120 or the controlled device 121 and the communication time of the control network 122, an example is to add a predetermined margin to the threshold value of the elapsed time. Criterion B2: When sequence numbers or transmission times in the control device 120 are provided on the received data, whether or not they match the values on the previously received data. For example, if the sequence numbers are not consecutive or the difference in transmission times exceeds a predetermined value, the received data is considered invalid, and if not, the received data can be determined to be valid. Criterion B3: When the sending time is recorded in the control device 120, whether it matches the receiving time of the received data. If the difference between the receiving time and the sending time (i.e., the communication time) exceeds a predetermined value, the received data is considered invalid, and if not, the received data can be determined to be valid. If a real-time network with high time certainty is used for the control network 122, the predetermined value for determining the validity of the received data can be determined from the specifications of the control network 122. The sending time may also be stored on the packet. Criterion B4: Whether an error is detected based on an error detection code on the packet. An example of the error detection code is a cyclic redundancy check (CRC). Criterion B5: Whether or not a value at a specific position on a packet is a specific value. In this case, a method of determining that a packet is valid when the value at a specific position on the packet is a specific value may be used, or conversely, a method of determining that a packet is invalid may be used. For example, the determination may be made using data updated by the controlled device 121 or the IRQ or WKC value of the EtherCAT datagram header. If it is determined that the received data is valid (Y in step S051), the received data integration management unit 169 determines the allocation position of the received data in the received data storage unit 170 (step S052). Then, the received data integration management unit 169 allocates the received data to the position determined in step S052 (step S053). Then, the received data integration management unit 169 determines whether the set of received data is valid (step S054). If it is determined in step S054 that the set of received data is valid (Y in step S054), the received data integration management unit 169 validates the received data in the received data storage unit 170 (step S055). On the other hand, if it is determined in step S051 that the received data is invalid (N in step S051), the received data integration management unit 169 executes a corresponding process (step S057). Examples of the corresponding process include an external presentation including a notification such as an interrupt to the calculation unit 160 of the control device 120. Alternatively, examples of the corresponding process include invalidating an area that has already been received and allocated in the received data storage unit 170, and invalidating even received data that is scheduled to be received in the future. That is, the criteria for determining whether the received data is valid in step S051 include the presence or absence of invalidation process in step S057. Note that an example of the corresponding process includes invalidating the invalidation process itself after a predetermined number of packets or datagrams are received, or after a predetermined time or period has elapsed. Such a process is also included in the corresponding process in step S057 and each of the subsequent steps. Alternatively, invalidation of the invalidation process may be performed independently of or in parallel with the procedure shown in FIG. 12. Then, after the process of step S055, after the process of step S057, or when it is determined in step S054 that the received data set is not valid (N in step S054), the control device 120 determines whether the termination condition is satisfied (step S056). If the termination condition is satisfied (Y in step S056), the process is terminated. The determination of the termination condition is the same as in step S027 in FIG. 9. In addition, the termination may be determined based on the processing result in step S057. For example, the termination may be determined when the number of invalidations exceeds a predetermined value. Also, in step S052, the received data integrated management unit 169 may determine the allocation position based on the order of reception or the time of reception. Since the control device 120 knows the start time and the communication cycle, it can determine which cycle the communication is. Alternatively, the data sender, in this case, for example the control device 120 or the controlled device 121, may store information in the communication data specifying which communication it is and the allocation position. In this case, information such as the header may be used, or the data area in the packet or datagram may be used. Alternatively, the data sender may store in the data area of the packet or datagram address information indicating the allocation position on received data storage unit 170. In this case, if the physical address of the built-in RAM of the EtherCAT slave is 16 bits (64 kB) and it is expected to have the effect of using a space larger than the built-in RAM as the integrated data area, the bit width of the address needs to be greater than 16 bits. Incidentally, since the information indicating the allocation position on the received data storage unit 170 is essentially information determined by the control device 120, it is possible to store the identifier of the packet in association with the allocation position on the received data storage unit 170 without storing it on the packet. In this case, the received data integration management unit 169 can determine the allocation position on the received data storage unit 170 from the identifier of the received packet. This method can also be applied to the data integration management unit 154 described in FIG. 9. Furthermore, the response process in step S057 (such as invalidating an area in the received data storage unit 170) is executed starting from the packet reception in step S050. However, in consideration of the possibility of a communication abnormality in the control network 122, the response process may be executed after a predetermined time has elapsed (timeout) since an event such as the immediately preceding packet reception, allocation of received data, or validation of a received data set. <Example of Operation of Communication Schedule Unit 162 and Communication Schedule Configuration Unit 164> Fig. 13 is a flow diagram showing an example of a procedure in which the communication schedule composing unit 164 determines a communication schedule in Fig. 3. Figs. 14A, 14B, 14C, and 14D are schematic diagrams showing specific examples of communication schedules determined by the flow shown in Fig. 13. In Fig. 13, first, the communication schedule composing unit 164 acquires information on the control system 123 from the control system information storage unit 163 (step S060). The acquired information includes the effective data capacity, input / output size, and control period in the data storage unit 153 of each controlled device 121, as shown in Fig. 14A. The effective data capacity refers to the data size that can be allocated to control communication in the data storage unit 153. In the case of EtherCAT, the capacity of the built-in RAM that can be allocated to process data communication, which corresponds to control communication, is one-third of the capacity allocated to mailbox communication, etc., if any, and is further reduced to allow the SyncManager that manages exclusive control of the built-in RAM to function. For example, if the data storage unit 153 (built-in RAM) is 8 kB and 2 kB is allocated to mailbox communication, the effective data capacity is (8 kB - 2 kB) / 3 = 2 kB. The input / output size is the data size to be updated by the control device 120 per control cycle. Here, it is referred to as input / output, but it may be only input or only output. In addition, if the LRW command of EtherCAT is used, input (read from the perspective of the control device 120) and output (write from the perspective of the control device 120) can be communicated simultaneously, so there is no need to measure the input size and output size separately and add them up. For example, even if the input size (e.g., sensor value) and output size (e.g., command value) each require 2 kB, the input / output size may be 2 kB instead of 4 kB. Here, an example is taken of communication using the LRW command. However, input and output may be communicated using the LRD command and LWR command, respectively. Also, the input size and output size do not have to be equal. In this case, input and output may be communicated using the LRD command and LWR command, respectively, or LRW may be used according to the smaller size, and the surplus may be communicated using either the LRD command (when the input size is large) or the LWR command (when the output size is large). Furthermore, the information acquired by the communication schedule configuration unit 164 from the control system information storage unit 163 includes restrictions and requests regarding the number of FMMUs (Fieldbus Memory Management Units) installed and the number of uses of each control target device 121. The restrictions and requests regarding the number of uses may be for each control target device 121. Similar information may also be included for the SyncManager. After executing step S060, the datagram configuration determination unit 166 determines the configuration of the datagram to be transmitted from the control device 120 to the control target device 121 (step S061). For example, the number of datagrams in a control period can be calculated by dividing the input / output size by the available data capacity. Furthermore, if communication is performed at equal intervals, the communication period can be calculated from the number of datagrams. In the case of FIG. 14A, the number of datagrams and the communication cycle of each control target device 121 are obtained from the following (A) to (C). (A) In the case of the controlled device 121A Number of datagrams: 1000B / 500B = 2 Communication cycle: 1ms / 2 = 500μs (B) In the case of the controlled device 121B Number of datagrams: 5000B / 500B = 10 Communication cycle: 10ms / 10 = 1ms (C) In the case of the controlled device 121C Number of datagrams: 1000B / 1000B = 1 Communication cycle: 1ms / 1 = 1ms The datagram configuration determination unit 166 determines the datagram configuration based on the calculated number of datagrams in the control period and the communication period. At this time, it is necessary to take into consideration the maximum allowable data size that can be communicated, which is specified by the protocol of the control network 122. For example, in IEEE 802.3, the maximum allowable data size is 1500 bytes (excluding the header and FCS), and in the case of EtherCAT, one datagram is 1486 bytes. In the case of EtherCAT, overhead such as the header increases with each datagram, so the maximum allowable data size per datagram and the total number of datagrams decreases. In the example shown in Fig. 14A, the effective data capacity of the control target devices 121A, 121B, and 121C is less than the maximum allowable data size of EtherCAT, so datagrams may be constructed individually. Alternatively, even if the control target devices 121A and 121B are combined, the total is (500B + 500B = 1000B), which is less than the maximum allowable data size of EtherCAT, so the control target devices 121A and 121B can be combined. On the other hand, if the control target devices 121A and 121C are combined, the total is (500B + 1000B = 1500B), which exceeds the maximum allowable data size of EtherCAT, so the control target devices 121A and 121C cannot be combined. The same applies to the combination of the control target devices 121B and 121C. In this way, the datagram configuration determination unit 166 determines the datagram configuration taking into consideration the available data capacity and the maximum allowable data size (allowable size of a communication packet and allowable size in datagram units) in the control network 122. In this case, the communication cycle and the number of divisions into partial areas when integrating in the data integration management unit 154 may differ for each controlled target device 121. In the above example, the number of divisions into partial areas is 2 for the controlled target device 121A, 10 for the controlled target device 121B, and 1 for the controlled target device 121C. Next, based on the datagram configuration determined in step S061, the logical address determination unit 165 determines the allocation of logical addresses in the data storage unit 153 of each control target device 121 (step S062). For example, when datagrams for communicating with the control target devices 121A, 121B, and 121C shown in Fig. 14A are individually configured, there are no restrictions on the allocation of logical addresses, so they can be freely assigned. As an example, the logical address determination unit 165 may assign logical addresses as shown in Fig. 14C. On the other hand, when the control target devices 121A and 121B are combined, it is necessary to allocate the data storage units 153 of the control target devices 121A and 121B to continuous areas. In this case, the logical address determination unit 165 may allocate logical addresses as shown in FIG. 14B, for example. Next, the communication schedule configuration unit 164 determines the transmission timing of each datagram (step S063). Examples of the transmission timing determined by the communication schedule configuration unit 164 include the communication cycle and the transmission timing offset for each control target device 121. The transmission timing is determined so as to satisfy requirements such as the control cycle, the input / output size, and the communication cycle that can be calculated in step S061. 14B and 14C show an example of the transmission timing determined by step S063. In FIG. 14B and FIG. 14C, the communication periods of the control target devices 121A, 121B, and 121C are determined to be 500 μs, 1 ms, and 1 ms, respectively. The offset of the transmission timing for the control target device 121C is determined to be 250 μs. In the case of FIG. 14C, a transmission timing offset is also provided for the control target device 121B. 14B and 14C, for example, assuming that the unit time is 1 ms, the number of datagrams of the controlled device 121A in the unit time is two, and each datagram has a size of 500 bytes. The number of datagrams of the controlled device 121B in the unit time is one, and each datagram has a size of 500 bytes. The number of datagrams of the controlled device 121C in the unit time is one, and each datagram has a size of 1000 bytes. After step S063, the communication schedule constructing unit 164 judges whether a predetermined condition is satisfied (step S064). This judgment may be made, for example, based on whether each or a combination of steps S061 to S063 has been executed a predetermined number of times. Alternatively, it may be made based on whether a required value is satisfied for any one or a combination of the number of datagrams, the number of packets, and the communication bandwidth utilization rate per a predetermined unit time. The predetermined unit time is, for example, the maximum communication cycle calculated in step S061. In the case of Fig. 14B and Fig. 14C, the communication cycle of the control target devices 121B and 121C is 1 ms, which is the maximum value among the control target devices 121A, 121B, and 121C, and is therefore regarded as the unit time. Also, for example, the required values of the number of datagrams, the number of packets, and the communication bandwidth utilization rate are stored in advance in the control system information storage unit 163. The communication bandwidth utilization rate is the proportion of data communication time per unit time in the control network 122. The data communication time includes, for example, the communication time of the packet (communication frame) itself as well as the communication time of a preamble, a Start Frame Delimiter (SFD), an FCS, an Interframe Gap (IFG), and the like. Alternatively, in step S064, the communication schedule constructing unit 164 may determine whether the number of datagrams and the number of packets have reached their ideal values. For example, the ideal number of packets is the maximum value of either the minimum number of packets required based on datagram division or the minimum number of packets required based on the maximum allowable size. In this case, the unit time is set to the maximum communication period calculated in step S061. 14B and 14C, for example, the unit time which is the maximum communication cycle is 1 ms, and the number of datagrams required per unit time for the controlled device 121A is 2. On the other hand, the number of datagrams required per unit time for the controlled devices 121B and 121C is both 1. Therefore, the minimum number of packets required based on datagram division is determined by the rate of the controlled device 121A and is 2. On the other hand, if the total effective data capacity per unit time in the controlled devices 121A, 121B, and 121C is divided by the maximum allowable size of an EtherCAT datagram and rounded up to an integer value, with Ceil() as the ceiling function, we get Ceil((500B x 2 + 500B + 1000B) / 1486B) = 2. As a result, since both the minimum number of packets required based on datagram division and the minimum number of packets required based on the maximum allowable size are 2, the maximum number of packets is 2. The ideal value for the number of datagrams is the same as the ideal value for the number of packets. Therefore, the ideal value for the number of datagrams is 2. 14D shows an example of a datagram configuration, logical address assignment, and transmission timing determined to minimize the number of packets and datagrams. In this example, access to the controlled device 121C is divided into multiple packets, and the divided access to the controlled device 121C and the access to the controlled device 121A are made continuous. For this reason, the data storage unit 153 of the controlled device 121A is assigned to two logical addresses (A, A'). In this way, the communication schedule construction unit 164 determines the datagram construction, logical address assignment, and transmission timing based on the available data capacity, input / output size, and control period. With this configuration, it is possible to minimize the number of packets and datagrams, and to minimize communication overhead associated with headers and IFGs. As a result, the surplus communication bandwidth can be utilized to execute other communications such as setting and status acquisition signals, and can be utilized for visualization of the controlled device 121 and the control system 123, and for maintenance and diagnosis by utilizing IoT. Therefore, it is possible to enhance the operation of the control system 123, and improve the performance and operation rate of the control system. As one solution to the above method of determining the communication schedule, the area of the data storage unit 153 of each controlled device 121 is allocated to a continuous logical address space. In addition, the data storage unit 153 of a controlled device 121 that transmits multiple datagrams per unit time (the maximum value among the maximum communication periods of each controlled device 121 calculated in step S061) may be allocated to multiple logical addresses. In this case, the data storage unit 153 of the same controlled device 121 is not allocated to continuous logical addresses, as in the case of the controlled device 121A in Fig. 14D. This method is used in cases where, as in the case of Fig. 14D, when a datagram is sent with each controlled device 121 assigned to a logical address in succession, it is not possible to store all of the data in a single datagram. On the other hand, in Fig. 14D, if the effective data capacity of the controlled device 121C is as small as 500B, the number of packets and the number of datagrams can be minimized by assigning logical addresses in the order of the controlled devices 121B, 121A, and 121C. Specifically, the first datagram may be an LRW command to access the control target devices 121B and 121A, and the next datagram every 500 μs may be an LRW command to access the control target devices 121A and 121C. In this case, since the data to be transmitted multiple times for the control target device 121A can each be stored in a single datagram, there is no need to assign multiple logical addresses for the control target device 121A. 14D, in order to allocate multiple logical addresses to the controlled device 121A, two FMMUs are used, and four FMMUs are used in the case of both input and output. If the restriction on the use of FMMU is one, the logical addresses of the data storage unit 153 of the controlled device 121A may be allocated to one location. In this way, the number of datagrams becomes three. That is, the second packet in Fig. 14D becomes two datagrams because the logical addresses of the controlled device 121A and the divided controlled device 121C are not consecutive. On the other hand, since the number of communication packets remains two, the increased overhead can be limited to one datagram, specifically, the size of the datagram header and WKC. As a specific method, a method is exemplified in which the priority relationship and weight of the communication requirements and resource (FMMU) requirements are set in the communication schedule configuration unit 164, and the schedule is determined based on that information. If the condition is satisfied in step S064 (Y in step S064), the communication schedule composing unit 164 notifies the communication schedule unit 162 of the determined communication schedule (step S065). The communication schedule unit 162 determines the transmission timing of packets based on the communication schedule notified from the communication schedule composing unit 164. In addition, when steps S061 to S063 are executed multiple times to plan multiple communication schedules, the best plan is notified to the communication scheduler 162 based on a predetermined evaluation index. The evaluation index is, for example, one of the number of packets, the number of datagrams, and the communication band utilization rate, or a weighted value of multiple of them. The priority and weight of these evaluation indexes are, for example, set in the communication scheduler 164. If the condition is not satisfied in step S064 (N in step S064), the process returns to step S061. In this case, the procedure to return to may be step S062 or S063 instead of S061, or may change each time the process returns from step S064. The destination to return to may be determined based on the result of the determination in step S064. For example, if the number of packets or the number of datagrams is an ideal value, the process may return to a procedure other than S061. Furthermore, based on the determined logical address configuration, the communication schedule configuration unit 164 may determine a datagram of logical address assignment (FMMU setting) to be transmitted to each control target device 121. In this case, at the time of initialization, the control device 120 may include the FMMU setting contents in a datagram group and transmit the datagram group to the control target device 121. <Exploratory method, optimization method> Furthermore, any one or more of the datagram configuration by the datagram configuration determination unit 166 in step S061, the logical address assignment by the logical address determination unit 165 in step S062, and the transmission timing by the communication schedule configuration unit 164 in step S063 may be determined using a search method or an optimization method. These methods include exhaustive search, metaheuristics such as genetic algorithms and particle swarm optimization, and combinatorial optimization algorithms. When these exploratory methods and optimization methods are used, the above-mentioned ideal values of the number of datagrams and the number of packets may be set as the termination condition, or any one or more of the number of datagrams, the number of packets, and the communication band utilization rate set by a system operator, etc. When multiple conditions are used, the termination condition may be, for example, the satisfaction of any one, multiple, or all of the multiple conditions. <Examples of memory integration> Fig. 15A is a diagram for explaining a specific example of the operation of the controlled device 121 in Fig. 9. Here, the allocation of logical addresses follows that in Fig. 14B. Fig. 15A shows a configuration example of a control system 123 including a control device 120 and controlled devices 121A, 121B, and 121C. In Fig. 15A, when focusing on the controlled device 121A, the capacity of the data storage unit 153 is set to 4000 bytes, and the breakdown is as follows: ・For input data: 500 bytes x 3 = 1500 bytes ・For output data: 500 bytes x 3 = 1500 bytes - Mailbox communication: 1000 bytes The input data is, for example, sensor information and status information acquired by the controlled device 121A, and is data transmitted from the controlled device 121A to the control device 120. The output data is, for example, control command information and setting update information for actuator output in the controlled device 121A, and is data transmitted from the control device 120 to the controlled device 121A. The capacity of each of the input data and output data is three times the data capacity that is originally required due to exclusive control by SyncManager. The input data and output data are both input data and output data using the LRW command, and the communication data size is 500 bytes. Fig. 15B is a diagram showing the allocation of logical addresses to each controlled device 121 in Fig. 15A and an example of FMMU settings for the controlled device 121A. These settings are executed within the initialization command for the controlled device 121. As a result, the 500-byte space from logical addresses 0x0001_0000 to 0x0001_01F3 is allocated to the input / output of the controlled device 121A. Fig. 15C is a diagram showing an example of the allocation of each area in the data storage unit 153 and the setting of the SyncManager in the controlled device 121A shown in Fig. 15A. Here, the setting for mailbox communication is not shown. Since the setting is required for each of the input data and the output data, two SyncManagers are used, one for the input data and one for the output data. The registers and bits not shown are set appropriately. Fig. 15D is a diagram showing an example of data allocation to the integrated data storage unit 155 by the data integration management unit 154 in the control target device 121A shown in Fig. 15A. As shown in Fig. 14A, the control target device 121A has an input / output size of 1000 bytes. For this reason, when processing output data, in other words control data, the data integration management unit 154 needs to integrate and manage two communication data pieces obtained by dividing the size (1000 bytes) of the output data notified to the control target device 121A from the control device 120 by the size of the output data of the data storage unit 153, which is 500 bytes. Similarly, when processing input data, in other words control data, the data integration management unit 154 needs to integrate and manage two communication data pieces obtained by dividing the size of the input data (1000 bytes) notified to the control device 120 from the controlled device 121A by the size of the input data in the data storage unit 153, which is 500 bytes. In this way, the number of times the input data is integrated and managed can be calculated by dividing the input size of the controlled device 121A by the input data size allocated in the data storage unit 153. Similarly, the number of times the output data is integrated and managed can be calculated by dividing the output size of the controlled device 121A by the output data size allocated in the data storage unit 153. Note that the number of times of integrated management is equal to the number of times of communication when the communication data sizes of the input data and the output data are equal to or larger than the input data size and the output data size assigned by the data storage unit 153. On the other hand, when data for the controlled device 121 is distributed into multiple datagrams of multiple packets, or when the communication data sizes of the input data and the output data are smaller than the input data size and the output data size assigned by the data storage unit 153, the number of times of communication increases. For this reason, the number of times of integrated management is not equal to the number of times of communication. The data integration management unit 154 needs to manage the communication and data updates in the data storage unit 153 until the required input size and output size are obtained. If the communication data size of the datagram that communicates the output data is 1000 bytes and the output data size allocated to the data storage unit 153 is 2000 bytes, the output data size of 2000 bytes will be obtained by two communications (2000 bytes / 1000 bytes=2). Here, as shown in FIG. 15D, in the controlled device 121A, two surfaces of the integrated memory area constituting the integrated data storage unit 155, memory 110a and memory 110b, are prepared. As a result, the calculation unit 160 can execute calculation processing by using the memory 110a in which all the necessary partial areas 111a and 111b are already prepared, for example, until all the necessary partial areas 111c and 111d in the memory 110b are prepared. In the specification, the memories 110a and 110b are collectively referred to as memory 110, and the partial areas 111a-111d are collectively referred to as partial area 111. The number of the memories 110 may be three or more. Also, two surfaces of the memory 110 may be prepared for each of the input data and the output data. For example, the operation when the control device 120 communicates a datagram as shown in Fig. 14B to the control target device 121A will be described. At the time offset 0 in the first 1 ms communication period (T[0]), the control target device 121A receives a datagram 180a of an LRW command having a total of 1000 bytes of data intended for the control target devices 121A and 121B (corresponding to Y of step S020 and step S021 in Fig. 9). The data integration management unit 154 holds the data corresponding to itself in the datagram 180a in the partial area 111a of the memory 110a (corresponding to steps S023 and S024 in Fig. 9). Next, at a time offset of 500 μs in the same communication cycle T[0], the control target device 121A receives a datagram 180c of an LRW command having 500 bytes of data destined for the control target device 121A. The data integration management unit 154 holds the datagram 180c in the partial area 111b of the memory 110a. At this point, all partial areas 111a and 111b of memory 110a are prepared (corresponding to Y in step S025 in FIG. 9). In other words, partial data is written to each of partial areas 111a and 111b, and control data is prepared in memory 110a, which corresponds to the integrated memory area obtained by integrating partial areas 111a and 111b. The data integration management unit 154 notifies the calculation unit 160 and grants the calculation unit 160 the right to access memory 110a (corresponding to step S026 in FIG. 9). The calculation unit 160 accesses memory 110a to obtain necessary information and executes a predetermined calculation process. Thereafter, at a time offset of 0 in the next 1 ms communication cycle (T[1]), the controlled device 121A receives the datagram 180a and stores the necessary portion in the partial area 111c of the memory 110b. Next, at a time offset of 500 μs in the same communication cycle T[1], the controlled device 121A receives the datagram 180c and stores it in the partial area 111d of the memory 110b. At this point, all partial areas 111c, 111d of memory 110b are available, so the data integration management unit 154 notifies the calculation unit 160 and grants the calculation unit 160 the right to access memory 110b. The data integration management unit 154 also disables memory 110a or disables access from the calculation unit 160, and waits to receive output data in the next periodic communication. This series of operations is then repeatedly executed. From a software perspective, the memory 110 can be represented by the following pseudo code: unsigned char memory[2]
[1000] ; / / Memory 110a, 110b The data integration management unit 154 grants the calculation unit 160 an appropriate right to access the memory 110 by, for example, processing such as a pointer in the C language or encapsulation in an object-oriented language. When switching between the memories 110a and 110b, for example, appropriate exclusive control (such as a semaphore or mutex) is executed. Note that this is the case where access to the memories 110a and 110b is managed by software, but the management of the memories 110a and 110b may be configured by hardware such as an IC or FPGA and hidden from the software. Which partial area 111 of which memory 110 the received output data corresponds to may be determined based on the order of reception or the time of reception. By sharing the communication cycle between the control device 120 and the controlled device 121 in advance, the controlled device 121 can determine which communication cycle it is from the reception time. At this time, the start time may be shared between the control device 120 and the controlled device 121, or the time when the controlled device 121 first receives the data after starting processing may be stored in the controlled device 121 as the start time. For example, mailbox communication may be used to share information between the control device 120 and the controlled device 121. Alternatively, information specifying which communication is which, or specifying either the memory 110 or the partial area 111, or both, may be stored in the communication data. In this case, information such as a header may be used, or a data area on a packet or datagram may be used. Alternatively, address information indicating the position of partial area 111 in memory 110 may be stored in the data area of a packet or datagram. In this case, if the physical address of the built-in RAM of the EtherCAT slave is 16 bits (64 kB) and it is expected that a space larger than the built-in RAM is used as the integrated data area, the bit width of the address needs to be greater than 16 bits. Furthermore, when the data integration management unit 154 receives data of the partial area 111, the data integration management unit 154 may enable only the partial area 111 so that the calculation unit 160 can access it. For example, when the data of the partial area 111a is received but the data of the partial area 111b is not received, the calculation unit 160 may be configured to be able to use the data of the partial area 111a. In this case, when the calculation unit 160 accesses the partial area 111b, the data integration management unit 154 or the integrated data storage unit 155 is configured to return an error to the calculation unit 160. Also, the data integration management unit 154 or the integrated data storage unit 155 is configured to notify the calculation unit 160 that the partial area 111a is valid and the partial area 111b is invalid. When configured in this way, the memory 110 may have only one surface. The same applies to communication of input data such as sensor data acquired by the controlled device 121, and the operation is as follows: The memories 110a and 110b used in the following description are for input data, and are provided separately from the memories 110a and 110b for output data described above. First, the calculation unit 160 gathers necessary input data in the first 1 ms communication cycle and transfers it to the data integration management unit 154 (corresponding to step S035 in FIG. 10). The data integration management unit 154 writes the transferred input data to the memory 110a (corresponding to Y in step S040 in FIG. 11). The data integration management unit 154 transfers the input data written in the partial area 111a of the memory 110a to the access exclusion control unit 152 so that the input data can be stored in the datagram 180a of the LRW command received at the time offset 0 in FIG. 14B (corresponding to step S043 in FIG. 11). The access exclusion control unit 152 writes the transferred input data to the data storage unit 153. 14B , the data integration management unit 154 transfers the input data written in the partial area 111b of the memory 110a to the access exclusion control unit 152 so that the input data can be stored in the datagram 180c of the LRW command received at the time offset of 500 μs in FIG. In parallel, when the calculation unit 160 has prepared the input data required for the next 1 ms communication cycle, it transfers it to the data integration management unit 154. In order to maintain the consistency of the memory 110a, the data integration management unit 154 writes the new input data transferred from the calculation unit 160 to the memory 110b. In subsequent periodic operations, the data integration management unit 154 alternately writes the input data transferred from the calculation unit 160 to the memory 110a and the memory 110b. In the next communication cycle of 1 ms, the data integration management unit 154 transfers the input data written in the partial area 111c of the memory 110b to the access exclusion control unit 152 so that the input data can be stored in the datagram 180a of the LRW command received with the time offset 0. The access exclusion control unit 152 writes the transferred input data in the data storage unit 153. Next, the data integration management unit 154 transfers the input data written in the partial area 111d of the memory 110b to the access exclusion control unit 152 so that the input data can be stored in the datagram 180c of the LRW command received at the time offset of 500 μs. The access exclusion control unit 152 writes the transferred input data in the data storage unit 153. Thereafter, this series of operations is repeatedly executed. With the above configuration, even if there is a limit to the storage capacity of the data storage unit 153 in the transfer of output data from the control unit 120 to the controlled device 121 and in the transfer of input data from the controlled device 121 to the control unit 120, it is possible to communicate data of a larger size in communication with the calculation unit 160. That is, in this example, the storage capacity of the data storage unit 153 is limited to 500 bytes for input data and output data, but the calculation unit 160 can virtually communicate 1000 bytes of data using the memories 110a and 110b that constitute the integrated data storage unit 155. <Specific Operation of the Control Device 120> The integration and division of output data and input data in the control target device 121 described above is similar to that in the control device 120. In the transmission process from the control device 120 to the control target device 121, integrated data calculated and updated by the calculation unit 160 is written to the transmission data storage unit 161. The communication schedule unit 162 divides and transmits the integrated data written to the transmission data storage unit 161 in accordance with the communication schedule determined by the communication schedule configuration unit 164. On the other hand, in the reception process from the controlled device 121 to the control device 120, the received data integration management unit 169 writes the information received successively to the received data storage unit 170, integrates it, and notifies the calculation unit 160 of the update of the received data. At this time, either or both of the transmission data storage unit 161 and the received data storage unit 170 may have the functions of exclusive control of writing and reading and simultaneous execution, similar to the access exclusive control unit 152 in the controlled device 121. <Timing for writing input data to data storage unit 153> In the case of periodic communication from the control device 120, the writing of input data from the data integration management unit 154 to the data storage unit 153 via the access exclusion control unit 152 is executed asynchronously at the timing when Y is entered in step S042 in Fig. 11. In this case, a configuration is exemplified in which the communication cycle of the control device 120 is shared with the controlled object device 121, and the controlled object device 121 manages the timing of step S042 in Fig. 11 for each communication cycle. However, in such a configuration, problems occur such as data not being updated or data being updated multiple times within the same period due to errors in the time management functions (crystal oscillator or software timer) of the control device 120 and the controlled device 121. In the time management functions of the control device 120 and the controlled device 121, time errors occur due to individual differences in crystal oscillators, for example, so errors accumulate even when the same period is timed. Fig. 16 is a schematic diagram showing an example of a problem that occurs when an error occurs in the time management between the control device 120 and the controlled device 121. As shown in Fig. 16, if the accumulated error in the time management becomes large, a period shift occurs, and the input data in the data storage unit 153 may be updated in the same communication period or the input data may not be updated in a certain communication period. If the input data in the data storage unit 153 is updated in the same communication period, the previously updated input data is overwritten and becomes invalid. In such a situation, appropriate sensor data and the like will not be transmitted to the control device 120, and control processing and the like will not be calculated appropriately, resulting in a decrease in the control performance of the control system 123. In order to prevent such a periodic deviation, a configuration is exemplified in which the periodic communication from the control device 120 and the writing of input data to the data storage unit 153 by the data integration management unit 154 are synchronized. <When time synchronization is performed by DC> For example, the control device 120 and the control target device 121 can be synchronized by a time synchronization protocol such as DC executed by the time synchronization unit 156 in the control target device 121 shown in Fig. 6. Then, the data integration management unit 154 controls the writing of input data to the data storage unit 153 (the timing at which Y is determined in step S042 in Fig. 11) based on the synchronized time. Fig. 17A is a time chart showing an example of an operation when the data integration management unit 154 in Fig. 6 writes input data to the data storage unit 153, on the assumption that time synchronization is performed. In Fig. 17A, notation is given focusing on one controlled device 121. 17A, Tp0 and Tp1 are periodic transmission timings from the control device 120. Dc is a communication delay from the control device 120 to the controlled device 121. In a real-time network such as EtherCAT, Dc can be determined with high accuracy and certainty. Di is the time it takes for the data integration management unit 154 to write input data to the data storage unit 153. Di may include a margin that takes into account the maximum value of fluctuation in processing time by the data integration management unit 154 and the access exclusion control unit 152. The time TiN (N is a period identifier) at which the data integration management unit 154 starts writing input data, that is, the timing at which Y occurs in step S042 in FIG. 11, can be determined by equation (1). TiN = TpN + Dc - Di...(1) In order to calculate formula (1), TpN or a method for determining TpN is shared in advance between the control device 120 and the controlled device 121. Specifically, for example, if the communication cycle of the control device 120 is 1 ms, a rule may be set such that the control device 120 starts communication when the end of the synchronization time (in ns) by DC is a multiple of 1,000,000 ns. Alternatively, in order to calculate formula (1), the next scheduled transmission time may be included in the communication from the control device 120. In this case, the communication is not limited to periodic communication, and the transmission timing of the control device 120, and further the writing timing of the input data by the data integration management unit 154, can be determined at any communication timing. If the control device 120 and the controlled device 121 are time-synchronized, the time when the data integration management unit 154 starts writing the input data can be determined in this manner. In addition, when the data integration management unit 154 cannot be started before the input data write timing due to implementation constraints such as software (when the input data write timing is not reached in time), the input data is not written. In addition, a predetermined notification means may be used to notify the outside that the input data was not written in time. This notification allows the system operator to take measures such as reviewing the implementation of the control target device 121, thereby improving the reliability of the operation of the control system 123. Examples of the notification means to the outside include an interrupt by EtherCAT (use of IRQ on the datagram header) and a visual means using an LED or a Human Machine Interface on the control target device 121 or the control device 120. <If time synchronization is not performed> Fig. 17B is a time chart showing an example of the operation when the data integration management unit 154 in Fig. 6 writes input data to the data storage unit 153, assuming that time synchronization is not performed. If time synchronization of DC or the like is not performed due to restrictions on the corresponding functions of the control device 120 and the control target device 121 or due to operational reasons of the control system 123, the write timing of the input data by the data integration management unit 154 may be determined as shown in Fig. 17B. In Fig. 17B, the data integration management unit 154 uses a timer function (not shown in Fig. 6, etc.) to start a timer every time a packet associated with periodic communication is received from the control device 120, thereby determining the timing of writing input data. In Fig. 17B, P is the communication cycle of the control device 120. Dint is the delay time from when the controlled device 121 starts receiving packets from the control device 120 until it notifies the data integration management unit 154. An interrupt is generally used for this notification. When an interrupt is used, it is configured so that an interrupt occurs when a packet is received or when writing to the built-in RAM via SyncManager. Dw is the timer setting time. At time TiN, the data integration management unit 154 starts writing input data to the data storage unit 153 by an interrupt triggered by a timeout after the timer setting time has elapsed. At this time, the timeout time of the timer can be determined by equation (2). Dw = P - Dc - Dint - (Di - Dc) = P - Dint - Di...(2) Generally, Dint is often very small compared to other parameters, and may be ignored or may be included in the margins of other parameters. In this way, the problem of periodic deviation can be avoided by controlling the writing of input data by the data integration management unit 154 in synchronization with periodic communication from the control device 120. Note that this configuration is premised on the assumption that the error in the time management functions of the control device 120 and the controlled device 121 is sufficiently small, no periodic deviation occurs before a timer timeout occurs, and no problem occurs in which the input data is not updated in time for the reception of periodic packets from the control device 120 due to a time error. The data integration management unit 154 may not set a timer, and may write input data in response to periodic reception of packets from the control device 120. Alternatively, instead of starting the timer by an interrupt every time a packet is received, the data integration management unit 154 may start the timer by an interrupt due to packet reception and then operate the timer cyclically during a period that is not affected by accumulated errors in the time management function. <Synchronization method when packet loss occurs> Fig. 18 is a time chart showing an example of operation modified from Fig. 17B. As shown in Fig. 17B, when a timer is started based on communication from the control device 120, packet loss may occur in the communication from the control device 120. In such a case, the timer setting time may be updated again as shown in Fig. 18. 18, for example, when the data integration management unit 154 is started by a timer interrupt (e.g., a timeout) at Ti1, the data integration management unit 154 sets a period P at the time point Ti1 and starts a timer so that a timeout interrupt occurs at Ti2. Also, in consideration of continuous packet loss, the data integration management unit 154 sets a period P at the time point Ti2 and starts a timer so that a timer interrupt occurs at Ti3. In this way, the data integration management unit 154 re-updates the timer every time a timer interrupt occurs. Alternatively, the data integration management unit 154 may observe the elapsed time and update the input data each time a period accumulates and elapses. However, in this case, since time errors accumulate due to errors in the time management function, the data integration management unit 154 may correct the timeout period to be updated from the period P based on the accuracy of the time management function. For example, if the oscillator accuracy error of the control device 120 and the controlled device 121 is 50 ppm and the period P is 1 ms, then an error of up to 100 ns (100 ns = 1 ms x (50 ppm x 2)) will occur between the control device 120 and the controlled device 121 each time a period elapses. Therefore, when updating the timer setting time, the timeout value may be the value obtained by subtracting the error of 100 ns from the period of 1 ms. By generating a timer interrupt early taking into account the time error, the data integration management unit 154 can update the input data before communication from the control device 120. If packet loss continues and it is predicted that the accumulated error of the time management function cannot be ignored, the timer setting may be stopped and an abnormal state may be notified to the outside. Examples of a means of notifying the outside include an interrupt by EtherCAT (using an IRQ on a datagram header) and visual means such as an LED or a Human Machine Interface on the controlled device 121 or the control device 120. In addition, the data integration management unit 154 may, for example, set the period P as a timeout value in the timer at the timing Ti1 in FIG. 18, and then interrupt the timer at the timing when a packet is received from the control device 120 (for example, Tr2 in FIG. 18), and change the timer's setting time (timeout time) back to Dw. <Synchronization method during retransmission and redundancy> Fig. 19 is a time chart showing an example of the operation when the data integration management unit 154 in Fig. 6 writes input data to the data storage unit 153, on the premise that retransmission or route redundancy communication is performed. The control device 120 may perform retransmission or route redundancy communication to improve the reliability of communication. In this case, the reception timing of the packet in the control target device 121 may be delayed. In the example shown in Fig. 19, the reception timing Tr2 is delayed to Tr2'. The following describes how to handle this case. Generally, if the control device 120 is unable to confirm normal communication before a predetermined period (timeout time) has elapsed (for example, if a normal packet cannot be received), it determines that an abnormality has occurred and resends the transmitted packet. In this case, the reception timing is delayed by the timeout time. In addition, since resending may be performed multiple times, there is a possibility that a delay equivalent to the timeout time for the number of resendings may occur. In addition, when route redundant communication is performed, the communication route of the packet may change, and in this case too, the reception timing at the controlled device 121 changes. In this case, not only is the reception timing delayed, but it may also be advanced. 20A and 20B are schematic diagrams showing an example of a situation in which a path abnormality occurs between the control target device 121b and the control target device 121c. In FIG. 20A, the control device 120 transmits packets from both of the two communication ports consisting of the transmission units 167a and 167b. Focusing on the reception timing of the control target device 121c, when the path is normal, the control target device 121c receives the packet after passing through the control target devices 121a and 121b. On the other hand, when the path abnormality occurs, the control target device 121c receives the packet transmitted from the transmission unit 167b as the first and only packet. In this case, the reception timing of the packet may be earlier than normal. 20B, when a path abnormality occurs, the control device 120 transmits a packet from the transmitting unit 167a, and after receiving the packet at the receiving unit 168a, transfers the packet to the transmitting unit 167b. When attention is paid to the reception timing of the control target device 121c, the communication path becomes longer, so that the reception timing of the packet at the control target device 121c is delayed. Therefore, the controlled device 121 first judges whether the received packet is a packet due to retransmission or route redundancy. In this case, the controlled device 121 may compare the reception timing of the packet when there is no abnormality with the reception timing of the packet to be judged, and may make a judgment by comparing the time difference with a predetermined threshold value. The reception timing of the packet when there is no abnormality may be the time obtained by adding the period P to the previous reception timing when normal. The time of the reception timing may be a time synchronized by a synchronization protocol such as DC, or may be the time of the controlled device 121 itself. Since there is no need to compare the time with the control device 120 or other controlled devices 121, the time of the controlled device 121 itself can be used. Alternatively, the control device 120 may indicate that a packet is a retransmission in a parameter on the packet (e.g., an index in an EtherCAT datagram header, etc.) when the packet is retransmitted. Furthermore, the control device 120 may indicate which retransmission is the first in the same period. Alternatively, as shown in FIG. 20B, the control device 120 may reflect in the parameter on the packet that the packet is a redundant communication when the control device 121 forwards the packet from the transmitting unit 167b. For example, the control target device 121 may determine that a retransmission or a redundant route is required when the control target device 121 detects these parameter values for the received packet. When receiving packets associated with retransmission or route redundant communication, the controlled device 121 may control the update timing of the input data with a timeout value to which a period P is added, as shown in Fig. 18, without updating the timer interrupt due to the received packets. Alternatively, when the delay time of the reception timing is clear, the controlled device 121 may change the timer timeout time using that value. For example, in the case of retransmission, the control device 120 retransmits after a timeout, so the delay time is known. More specifically, the timeout time To is shared between the control device 120 and the controlled device 121, and when the controlled device 121 receives a retransmitted packet, the timeout time is modified using equation (3) and the timer is set. Dw'= Dw - To x Cr...(3) Here, Cr is the number of retransmissions, and the control target device 121 can be identified by the control device 120 reflecting the number of retransmissions in a parameter on the packet. Even in the case of route redundancy, if the change in communication delay due to a change in the communication route of the packet is known, the timeout time can be calculated in the same manner by substituting To × Cr in formula (3). To make this possible, in the configuration shown in Fig. 20B, the control device 120 reflects the route abnormality location in the parameters on the packet when transferring the packet to the transmitting unit 167b. At this time, the control device 120 includes in the packet a datagram (e.g., a BRD command) that all the control target devices 121 react to and update the WKC, and when the receiving unit 168a receives the packet at the time of the path abnormality, the control device 120 can determine the location of the path abnormality by checking the value of the WKC. If the control target device 121 knows the location of the path abnormality, it can calculate the delay change due to the path redundancy communication based on the packet transfer time of each control target device 121, the packet transfer time of the control device 120, the cable length between the control target devices 121, etc. The above method can solve the problem of data not being updated due to a periodic shift and data being updated repeatedly within the same period. The above configuration is not limited to configurations based on EtherCAT, but can also be applied to configurations based on, for example, the IEEE 802.3 communication standard having a communication bandwidth of 1 Gbps or more, or a communication method with a large frame size such as a jumbo frame. <Assignment of the same logical address to multiple slaves> The same logical address may be assigned to different control target devices 121. By configuring in this way and integrating and managing data in the data integration management unit 154 and integrated data storage unit 155 of each control target device 121, high reliability can be achieved by making the process redundant. For example, by connecting a physically common input / output device to multiple control target devices 121, the input / output control can be made highly reliable. <Dynamic change of division number and communication schedule> The number of divisions into partial regions when integrating in the data integration management unit 154 and the integrated data storage unit 155, or the received data integration management unit 169 and the received data storage unit 170, may be changed depending on the state of the control system 123 and the controlled device 121. At this time, a change in the control recipe in the control system 123 is included. That is, the control cycle and input / output size of the controlled device 121 may change due to a change in state or control recipe. Alternatively, the control system 123 or the controlled device 121 may be a moving body, and the operation to be executed may change depending on the location. For example, the required control cycle and input / output size may change between when a mobile picking robot is simply moving and when the robot is performing a picking operation near a conveyor or another robot. This may also change the number of divisions into partial regions. When the control device 120 changes the number of divisions of partial areas, the control period, the input / output size, etc., of the control target device 121, it is sufficient to notify the control target device 121 of the changed information. This notification may be made using mailbox communication or a dedicated format. An example of the dedicated format is one that includes one or more of the fact that information has changed, the type of information that has changed, and the changed value. In such a case, the configuration of the communication schedule by the communication schedule configuration unit 164 shown in Fig. 13 and Fig. 14A to Fig. 14D may be re-executed. In detail, the communication schedule configuration unit 164 may re-execute the configuration when the state is changed, or may re-execute the configuration before the state is changed and store the execution result. In this way, the communication schedule configuration unit 164 reconfigures the communication schedule in response to a change in the state of the control system 123 or a change in the control recipe. As a result, the components of the communication schedule, such as the allocation of the address space of each control target device 121 to a logical address space, the size of a datagram, the logical address or command of the access destination, the transmission timing, and the communication cycle, can be dynamically changed. <Non-constant number of divisions> The number of divisions of partial regions when integrating in the data integration management unit 154 and the integrated data storage unit 155, or in the received data integration management unit 169 and the received data storage unit 170, does not have to be the same number of periods for each set. For example, partial regions may be integrated with data for one period in the first set, partial regions may be integrated with data for three periods in the next set, partial regions may be integrated with data for five periods in the next set, and thereafter, the operation of integrating the partial regions with data for one period, the set of three periods, and the set of five periods is repeated. Such an operation is effective when the pattern operation accompanying the repetition is appropriate by repeating a standard process by the control system 123. To realize this, for example, a periodic pattern may be stored in advance in the controlled device 121, or the control device 120 may notify the controlled device 121. <Discontinuous Partial Regions> The partial areas to be integrated in the data integration management unit 154 and the integrated data storage unit 155, or in the received data integration management unit 169 and the received data storage unit 170 do not necessarily have to be consecutive according to the order of reception, and may be in random order. This is because the order that the transmitting side can prepare may be discontinuous, or a situation may occur in which the receiving side cannot necessarily receive data in order due to packet loss, retransmission, or the like. By dealing with discontinuous partial regions, the transmission order does not need to be consecutive, so the sender can have freedom in the data to be sent, and the sender's application can also have more freedom. As a specific method of dealing with discontinuous transmission data, information indicating the order of the data can be included in the discontinuous transmission data. <Functional sharing through multi-CPU and multi-core utilization> Figures 22A and 22B are block diagrams showing an example of a modified hardware configuration of the controlled device 121 shown in Figure 4. In Figure 22A, a multi-CPU consisting of multiple CPUs 101a and 101b is provided instead of the CPU 101 shown in Figure 4. In Figure 22B, a multi-core CPU 190 having multiple CPU cores 191 is provided instead of the CPU 101 shown in Figure 4. 6 may be provided for each of the multiple CPUs 101a and 101b, or for each of the multiple CPU cores 191. When the integrated data storage unit 155 is configured using the memory 104 or the non-volatile storage medium 105, a plurality of memories 104 or non-volatile storage media 105 may be physically provided, or the recording area of the memory 104 or non-volatile storage medium 105 may be divided for each of the multiple CPUs 101a and 101b, or for each of the multiple CPU cores 191. In the data storage unit 153 in the communication control IC 130 for the controlled device, the multiple CPUs 101a, 101b or the multiple CPU cores 191 may share the same storage area, or the storage area may be divided among the multiple CPUs 101a, 101b or among the multiple CPU cores 191. The communication schedule configuration unit 164 in the control device 120 may determine a communication schedule by regarding the multiple CPUs 101a, 101b or the multiple multi-core CPUs 190 in the controlled device 121 as one communication destination, or may determine a communication schedule by regarding each as an individual communication destination. With this configuration, each of the CPUs 101a and 101b or each of the CPU cores 191 can execute its own dedicated function (e.g., control, maintenance, diagnosis, preventive maintenance, etc.). As a result, the function and performance of the controlled device 121 can be improved while executing a plurality of arithmetic functions, and the control system 123 can be made more advanced and sophisticated. <Multiple control devices 120> Fig. 23 is a schematic diagram showing a configuration example obtained by modifying the control communication system shown in Fig. 1. In Fig. 23, unlike the case of Fig. 1, a plurality of control devices 120a, 120b control a group of control target devices 121 via an integrated network 200. In the specification, the plurality of control devices 120a, 120b are collectively referred to as a control device 120. The control communication system shown in Fig. 23 includes a plurality of control target devices 121 groups, that is, a control target device 121 group consisting of control target devices 121a-121d and a control target device 121 group consisting of control target devices 121e-121g, but may include a single control target device 121 group. The integrated network 200 is a network that allows multiple control devices 120 to control one or multiple groups of control target devices 121 while satisfying the constraints for constructing the control network 122. A TSN is exemplified as the integrated network 200. In this case, each individual control device 120 may control (transmit / receive input / output data) a different control target device 121, or multiple control devices 120 may control the same control target device 121. An example of a case where the same control target device 121 is controlled by a plurality of control devices 120 is a case where distributed control of the same control target device 121 is performed between the plurality of control devices 120. In this case, the data integration management unit 154 of the control target device 121 may control the allocation position of the received data to the integrated data storage unit 155 or the transmitted data to the control device 120 based on the identification of the control device 120 when integrating and managing the input / output data to the integrated data storage unit 155. When identifying the control device 120, the source address on the packet (such as the Source MAC address of the header of the IEEE 802.3 frame) may be used, or the identifier of the control device 120 may be included on the packet (for example, the index of the EtherCAT datagram header). Note that a certain control device 120 may shift the transmission timing by adjusting the transmission timing with respect to the other control devices 120. Also, a configuration may be made such that the other control devices 120 can receive communication packets from the control device 120 or the control target device 121. The above-mentioned configuration enables integrated management of received data in the received data integrated management unit 169 of the control device 120. In addition, distributed control by a plurality of control devices 120 can distribute the load. Furthermore, when a control device 120 fails, another control device 120 takes over the processing, thereby improving the availability of the control system 123 and making it highly reliable. Alternatively, by adjusting the number of control devices 120 according to the performance requirements of the control system 123, the control system 123 can be optimally executed from the viewpoint of device cost, energy consumption, and the like. That is, the number of control devices 120 may be dynamically changed according to the operating status of the control system 123. <SyncManager and Access to Objects> For example, assume that mailbox communication or process data communication such as CoE (CAN application protocol over EtherCAT) is performed in EtherCAT. In this case, a method is used in which the built-in RAM (data storage unit 153) of the control target device 121 is divided, and each divided area is managed and accessed via the SyncManager (access exclusive control unit 152) to access an object. In the embodiment, the data integration management unit 154 and the integrated data storage unit 155 are provided, which provides the effect of virtually increasing the effective data capacity of the built-in RAM accessible by the SyncManager. As a method of associating an object with the effective data capacity thus virtually increased, a method of defining a new intermediary object is exemplified. The intermediary object manages the correspondence between a partial area included in a received datagram and the location where the object to be accessed is stored in integrated data storage unit 155. Therefore, an example of a component of the intermediary object is one having one or more combinations of an index of an object to be accessed and a location in integrated data storage unit 155. When a datagram is received and an area in data storage unit 153 that is mapped by the intermediary object is updated, the intermediary object obtains the data of the updated area and identifies the received data, thereby updating the data of the corresponding object in integrated data storage unit 155. Therefore, it can be said that the actual operation of the intermediary object is an operation based on the function of data integration management unit 154. As a result, an application running on calculation unit 160 can access a target object by obtaining the data of the required object from the relevant area in integrated data storage unit 155. On the other hand, when data is transmitted from the control target device 121 to the control device 120, the received data integration management unit 169 and the received data storage unit 170 operate in the same manner as the data integration management unit 154 and the integrated data storage unit 155, respectively. That is, the received data integration management unit 169 identifies the received data, determines the corresponding object, and stores the received data in a position on the received data storage unit 170 where the target object is stored. Note that, for example, the received data can be identified by using any one or more of a method of recognizing which period the data is received in, a method based on the reception time, or a method of including identification information in the information on the received data. The above operations are, for example, executed using either an SDO (Service Data Object) or a PDO (Process Data Object), or both. The relationship between an intermediary object and one or more target objects managed by the intermediary object may be defined as a vendor-specific tag in the ESI or ENI. In this case, examples of information defined in the unique tag include identification information of the received data and information (such as an index) of the object corresponding to the received data. With this definition, the control device 120 may transmit the relationship between the target objects managed by the intermediary object to the controlled device 121 as an initialization command defined in the ENI. Similarly, the index of the intermediate object associated with the SyncManager may be defined as ESI or ENI. Alternatively, the relationship between the target objects managed by the intermediate object may be defined in a unique method other than ESI or ENI. As another method of associating an object with a virtually increased effective data capacity, an intermediate object may not be provided, and data integration management unit 154 (received data integration management unit 169 in the case of input data) may manage the data. That is, when a datagram is received and an area in data storage unit 153 is updated, data integration management unit 154 obtains the data of the updated area and identifies the received data, thereby updating the data of the corresponding object in integrated data storage unit 155. As is clear from the association with this object, the data integration management unit 154 may integrate a portion of the area of the data storage unit 153 (built-in RAM) (an area managed by one SyncManager) as a partial area and integrate it as an integrated data area on the integrated data storage unit 155. <Layering, parallelization> Fig. 24 is a block diagram showing a configuration example obtained by modifying the functional configuration of the communication processing unit 140 shown in Fig. 6. Up to this point, the integration by the data integration management unit 154 and the integrated data storage unit 155 in the control target device 121 and the received data integration management unit 169 and the received data storage unit 170 in the control device 120 has been described. The partial areas used in this case may be managed hierarchically and in parallel. That is, as shown in Fig. 24, a plurality of data integration management units 154a-154c and a plurality of integrated data storage units 155a, 155b may be provided hierarchically and in parallel, and each of the data integration management units 154a-154c may integrate the partial areas. In Fig. 24, the data integration management units 154b and 154c are in a parallel relationship with each other and have a hierarchical structure with respect to the data integration management unit 154a. The data integration management unit 154a integrates the partial areas 111a and 111b into the integrated data area 112a using the integrated data storage unit 155a. Specifically, the data integration management unit 154a, for example, combines two pieces of received data into one integrated data area 112a. Then, when the integrated data area 112a becomes valid, the data integration management unit 154a transfers the data in the integrated data area 112a to the data integration management units 154b and 154c. The data integration management units 154b and 154c perform further integration with the integrated data area 112a as a partial area. For example, the data integration management unit 154b integrates the data of the two integrated data areas 112a from the data integration management unit 154a by writing it to the integrated data areas 112b and 112c, and generates data of the integrated data area 112d for the calculation unit 160a. Similarly, the data integration management unit 154c integrates the data of the four integrated data areas 112a from the data integration management unit 154a by writing it to the integrated data areas 112e-112h, and generates data of the integrated data area 112i for the calculation unit 160b. Therefore, the integrated data area 112d is composed of data received four times in total, and the integrated data area 112i is composed of data received eight times in total. In addition, although the integrated data storage unit 155b is shared by the data integration management units 154b and 154c in the configuration shown in Fig. 24, the integrated data storage unit 155 may be provided in each of the data integration management units 154b and 154c. 24, it is possible to provide integrated data suitable for applications using different amounts of data, and therefore suitable for the calculation unit 160. For example, the calculation unit 160a executes a control application, and in parallel with this, the calculation unit 160b executes a diagnostic application or an AI application that analyzes and diagnoses input / output data and the control target device 121. Furthermore, when the control system 123 or requirements are changed, the size of the integrated data can be easily changed by adopting a hierarchical structure or a parallel structure. In addition, the size of the integrated data for each calculation unit 160 can be changed without affecting the other calculation units 160. The hierarchical structure or the parallel structure may be configured with one device (e.g., a CPU) or multiple devices (e.g., a CPU, an ASIC, an FPGA). <Start data shift> In addition, when the control system 123 is started or resumed after an interruption, if the received partial area is not the first data, the received data is discarded until the first data is received. As a method for determining whether the data is the first data or not, a method for determining from the reception time of the received data or information on the received data is exemplified. In this way, even if the start timing of the control device 120 and the control target device 121 do not match, the timing can be matched. <Effect of being able to use a space larger than the logical address space> By using the method of the embodiment, data received by a command accessing a logical address space can be treated as a partial area, and multiple partial areas can be integrated, making it possible to use a data area larger than the logical address space. <Effects of changes, discontinuation of production, sale, and supply> In addition, in the method of the embodiment, the partial areas are integrated as an integrated data area by the data integration management unit 154 and the integrated data storage unit 155, which are independent of the access exclusive control unit 152 (SyncManager) and the data storage unit 153 (built-in RAM). Therefore, an IC different from the EtherCAT slave IC can be used as the data integration management unit 154 and the integrated data storage unit 155. This improves the freedom of IC selection, making it possible to use, for example, a high-performance CPU or a CPU or GPU specialized for specific processing. Furthermore, when the CPU being used is changed or abolished, it can be replaced with a different CPU, and the change or abolition can be flexibly dealt with. Overall Effects By using the method of the embodiment, even if there is a limit to the available area of the data storage unit 153 via the access exclusive control unit 152, the integrated management of the data area by the data integrated management unit 154 and the integrated data storage unit 155 enables high-speed, large-capacity communication between the control device 120 and the control target device 121. In addition, since high-speed, large-capacity communication is possible without increasing the effective data capacity (built-in RAM capacity) of special hardware such as the access exclusive control unit 152 (SyncManager), the cost of parts can be reduced. Furthermore, the communication schedule configuration unit 164 including the logical address determination unit 165 and the datagram configuration determination unit 166 determines the datagram configuration and assigns it to a logical address, thereby suppressing an increase in the number of packets and datagrams and reducing communication overhead associated with headers and IFGs. This allows the communication band to be used effectively. The surplus communication band can be used to execute other communications such as setting and status acquisition, and can be used for visualization of the controlled device 121 and the control system 123, and for maintenance and diagnosis by utilizing IoT. As a result, the operation of the control system 123 can be advanced, and the performance and operation rate of the control system 123 can be improved. The invention made by the inventor has been specifically described above based on the embodiments, but the present invention is not limited to the above-mentioned embodiments and can be modified in various ways without departing from the gist of the invention. For example, the above-mentioned embodiments have been described in detail to easily explain the present invention, and are not necessarily limited to those having all of the configurations described. In addition, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. In addition, it is possible to add, delete, or replace a part of the configuration of each embodiment with another configuration. For example, the various programs described above may be stored in a non-transitory, tangible, computer-readable recording medium and then supplied to a computer. Examples of such recording media include magnetic recording media such as hard disk drives, optical recording media such as DVDs (Digital Versatile Discs) and Blu-ray Discs, and semiconductor memories such as flash memories and SSDs (Solid State Drives). 110: memory (integrated data area), 111: partial area, 120: control device, 121: controlled device, 123: control system, 152: access exclusive control unit, 153: data storage unit, 154: data integration management unit, 155: integrated data storage unit, 160: calculation unit, 164: communication schedule construction unit, 165: logical address determination unit, 166: datagram construction determination unit, 169: received data integration management unit, 170: received data storage unit
Claims
1. A communications control device having an arithmetic unit that processes control data, a communications unit that transmits packets including the control data, and a data storage unit with exclusive control function, wherein the arithmetic unit associates the position that each of two or more partial data constituting the control data occupies in the control data with attributes related to the packet communicated by the communications unit, and exchanges the partial data with the communications unit via the data storage unit.
2. A communication control device according to claim 1, wherein the attribute relating to the packet is either a communication timing of the packet or information indicating a position of the partial data stored in the packet, or both.
3. A communications control device as described in claim 1, wherein the calculation unit determines whether a received first packet is valid based on one or more of the information on the packet, the communication timing of the packet, and a validity determination of a second packet received following the first packet, and if it determines that the first packet is not valid, does not include the partial data contained in the first packet in the control data.
4. A communication control device according to claim 1, wherein the calculation unit validates and processes the partial data as the control data based on one or more of the number, total size and contents of the partial data.
5. A communication control device according to claim 4, wherein the calculation unit has an area for storing first control data and an area for storing second control data, and processes the second control data that has already been enabled until the first control data is enabled.
6. A communication control device according to claim 1, wherein said calculation section writes said partial data into said data storage section in synchronization with communication of said packet in said communication section.
7. A control communication system comprising a first communication control device and a second communication control device controlled by the first communication control device, wherein each of the first communication control device and the second communication control device has an arithmetic unit for processing control data, a communication unit for transmitting packets including the control data, and a data storage unit having an exclusive control function, wherein the arithmetic unit associates a position in the control data occupied by each of two or more partial data constituting the control data with an attribute related to the packet communicated by the communication unit, and transmits and receives the partial data to and from the communication unit via the data storage unit, and the first communication control device determines a communication schedule including a datagram structure constituting the packet, communication timing of the packet, an access address of the data storage unit of the second communication control device specified in the packet, and allocation of the second communication control device to a virtual area of the data storage unit, based on a control period in the second communication control device, a required data capacity per control period, and a capacity of the data storage unit.
8. A control communications system as described in claim 7, comprising a plurality of second communications control devices, wherein the first communications control device calculates the number of datagrams per control period from the required data capacity per control period of the second communications control device and the capacity of the data storage unit, calculates a communication period per datagram based on the control period, determines the maximum value among the communication periods in the plurality of second communications control devices as a basic communication period, determines the concatenation of datagrams so that the amount of packets in the basic communication period is equal to or less than the allowable amount, and determines the allocation of the concatenated datagrams to the virtual area of the data storage unit of the second communications control device based on the configuration of the concatenated datagrams.
9. A control communication system according to claim 7, wherein the first communication control device determines the communication schedule using a search method.
10. A control communication system as described in claim 8, wherein the first communication control device uses a maximum value of the number of transmission datagrams per basic communication cycle required for each of the plurality of second communication control devices, a total of the required data capacity per basic communication cycle in the plurality of second communication control devices, and a number of packets calculated from the maximum allowable size per packet, and determines a plan for the communication schedule when the number of packets per basic communication cycle matches the larger of the maximum value of the number of transmission datagrams or the number of packets calculated from the maximum allowable size per packet.
11. A control communication system according to claim 7, wherein the first communication control device allocates the data storage unit of the second communication control device to a plurality of areas on the virtual area.
12. A control communication system as described in claim 7, wherein the first communication control device is time-synchronized with the second communication control device, the first communication control device transmits the packet based on the synchronized time, and the second communication control device writes the partial data to the data storage unit based on the synchronized time.
13. A control communication system as described in claim 7, wherein the calculation unit in the second communication control device writes the partial data to the data memory unit after a waiting time determined based on the transmission timing of the first communication control device has elapsed from the time the packet is received by the communication unit.
14. A control communication system according to claim 13, wherein the calculation unit in the second communication control device changes the waiting time based on any one of packet loss, retransmission, and transfer to a redundant route of the packet.
15. A control communication system according to claim 7, wherein the control data is assigned to a predetermined data structure, and the first communication control device and the second communication control device share the assignment of the data structure.
16. A control communication system according to claim 7, wherein the calculation unit in the second communication control device associates the position that the partial data occupies in the control data based on an identifier of the first communication control device.
Citation Information
Patent Citations
Image processor, image input / output apparatus, scaling method, and memory control method
JP2004048372A
Control device and distributed control system
JP2021068200A
