Communication system for control

The control communication device enhances system variability and communication performance by transmitting packets with control data and adjusting communication control information based on device state changes, addressing the challenges of existing control communication systems.

WO2025134227A1PCT designated stage expired Publication Date: 2025-06-26HITACHI HIGH TECH CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/045492
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-19
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Existing control communication systems face challenges in improving communication performance while accommodating changes in system configuration, leading to increased communication delay and decreased bandwidth utilization efficiency.

Method used

A control communication device with a communication unit that transmits packets including control data, maintaining correspondence between devices and control data, and adjusting communication control information based on device state changes, enabling flexible system configuration and improved communication performance.

Benefits of technology

The solution provides a control system with excellent system variability, allowing for changes in configuration while maintaining improved communication performance, thus addressing the limitations of existing systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023045492_26062025_PF_FP_ABST
    Figure JP2023045492_26062025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a control system with excellent system configurability capable of changing a system configuration in response to a request for the control system while improving communication performance thereof. To achieve this, the control system comprises a control communication device having a communication unit for transmitting a packet including control data, and a plurality of devices communicably connected to communication ports included in the communication unit and operating according to the received packet. The packet includes a packet data area in which selected control data is placed, and is transmitted from the communication unit to a device connected to the communication unit. The control communication device generates control data on the basis of communication control information related to transmission and reception of the control data, holds a correspondence relationship between the devices and the control data, and when the state of a device is changed, changes communication control information related to the device on the basis of the correspondence relationship.
Need to check novelty before this filing date? Find Prior Art

Description

Control Communication System

[0001] The present invention relates to a control communication system, and more particularly to a technique for setting control communication performed in a control communication system.

[0002] Control systems that support social infrastructure are composed of, for example, sensors, controllers, and actuators. In such control systems, the sensors acquire the state of physical objects and input it into the controller, the controller calculates control command values ​​to instruct the actuators, and the actuators act on the physical objects based on those command values. The control system performs the desired control by, for example, periodically repeating this series of processes.

[0003] Examples of such control systems include factory automation (FA) in factories, process automation (PA) in chemical plants, semiconductor manufacturing equipment, and semiconductor inspection equipment. Further examples include medical equipment, distributed control systems, power grid control systems, power generation plants, water and sewage treatment systems, and steelmaking control systems.

[0004] In this context, Patent Document 1 discloses a communication control device that reconstructs a frame according to the communication state of a network including multiple nodes. Specifically, when a production device (component mounting machine 1) suspends production (mounting processing) and reconstructs a frame during maintenance, the communication control device treats the entire data field as a target field and redistributes the target field among multiple nodes to change the ratio of each data section to reconstruct the frame.

[0005] International Publication No. 2018 / 105047

[0006] For example, 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 satisfy the requirements of control systems, such as time constraints (e.g., worst-case delay), cost, reliability, and requirements specific to the application field. In particular, with regard to the control networks that make up control systems, there is a demand for faster communication, shorter control communication cycles, and larger communication volumes, driven by the increasing scale and sophistication of control systems and recent advances in industrial IoT.

[0007] To meet these needs, Ethernet (registered trademark) has been introduced into control networks to increase communication capacity. Furthermore, after a control system is operational, changes to the system configuration may be required to accommodate changes in the requirements for the control system or to continuously improve the performance of the control system. This may involve adding a new communication control device, or it may involve improving the performance of a single communication control device, thereby reducing the number of communication control devices and reducing operational costs.

[0008] The cases where a change in the system configuration is required are not limited to the above, and may include, for example, when performing maintenance on the control system, when some or all of the communication control devices are temporarily stopped, or when a communication control device for maintenance is added to the control system. Depending on the control system, even when some of the communication control devices are stopped, the other communication control devices must continue to establish communication.

[0009] Given this background, there is a need for technology that can address both the demands of improved communication performance and changes in system configuration. However, there are challenges in achieving both improved communication performance and accommodating changes in system configuration. For example, to accommodate changes in system configuration, individual communication control devices are typically identified, and communication is conducted on a per-communication-control-device basis. However, in such a communication method, communication data is required for each communication control device, and the overhead associated with the communication data increases communication delays, reduces communication bandwidth utilization efficiency, and otherwise degrades communication performance.

[0010] For example, an Ethernet frame requires communication of a header, a Frame Check Sequence (FCS), and an Inter Frame Gap (IFG) in addition to communication data for an application. These are overhead in the sense that they are necessary for communication but do not contain valid data for the application.

[0011] The main object of the present invention is to solve the above-mentioned problems.

[0012] 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.

[0013] In order to solve the above problems, the present invention provides a control communication device having a communication unit that transmits packets including control data, and a plurality of devices that are communicatively connected to a communication port included in the communication unit and operate according to the received packets. The packets include a packet data area in which control data is selected and placed, and are transmitted from the communication unit to the devices connected to the communication unit. The control communication device generates the control data based on communication control information related to the transmission and reception of the control data, maintains a correspondence between the devices and the control data, and changes the communication control information related to the devices based on the correspondence when the state of the devices changes.

[0014] According to the present invention, it is possible to provide a control system with excellent system variability, which is capable of changing the system configuration in response to requests for the control system while improving communication performance.

[0015] FIG. 1 is a schematic diagram showing an example of the configuration of a control communication system according to a first embodiment. It is a block diagram showing an example of the hardware configuration of a control device in FIG. 1. It is a functional block diagram showing an example of the functional configuration of the control device in FIG. 1. It is a diagram showing an example of the configuration of an EtherCAT frame transmitted on the control network in FIG. 1. It is a block diagram showing an example of the hardware configuration of a controlled object device in FIG. 1. It is a block diagram showing an example of the functional configuration of a control object device communication control IC in FIG. 5. It is a block diagram showing an example of the functional configuration of a control system configuration device in FIG. 1. It is a flowchart showing an example of the operation procedure of each functional unit included in the control system configuration device shown in FIG. 7. It is a diagram showing a specific example of the operation procedure shown in FIG. 8. It is a diagram showing a specific example of the operation procedure shown in FIG. 8. It is a diagram showing a specific example of the operation procedure shown in FIG. 8. It is a flowchart showing an example of the execution procedure of transmission processing in the control device shown in FIG. 3. It is a flowchart showing an example of the execution procedure of reception processing in the control device shown in FIG. 3. It is a flowchart showing an example of the execution procedure of abnormality determination processing by the abnormality determination unit and abnormality response processing by the retransmission unit in FIG. It is a flowchart showing an example of the execution procedure when the system configuration is changed by the controlled object device selection unit, datagram generation information change unit, and control system configuration information storage unit in FIG. 16 is a diagram showing a specific example of the execution procedure shown in Fig. 13. FIG. 17 is a diagram showing a specific example of the execution procedure shown in Fig. 13. FIG. 18 is a diagram showing a specific example of the execution procedure shown in Fig. 13. FIG. 19 is a diagram showing a specific example of the execution procedure shown in Fig. 13. FIG. 19 is a block diagram showing an example of the hardware configuration of the control device in Fig. 1, in a control communication system according to a second embodiment. FIG. 19 is a functional block diagram showing an example of the functional configuration of the control device in Fig. 15. FIG. 19 is a flowchart showing an example of the execution procedure of abnormality determination processing by the abnormality determination unit and abnormality response processing by the retransmission unit and the redundant path control unit in Fig. 16. FIG. 19 is a schematic diagram explaining an example of a communication method using a redundant path in the control communication system according to the second embodiment. FIG. 20 is a schematic diagram explaining an example of a communication method using a redundant path in the control communication system according to the second embodiment.19 is a schematic diagram illustrating an example of another communication method using a redundant path in the control communication system according to the second embodiment. FIG. 20 is a schematic diagram illustrating an example of another communication method using a redundant path in the control communication system according to the second embodiment. FIG. 21 is a diagram illustrating an example of a communication path when a path abnormality occurs at multiple locations or a failure in a control target device occurs in the replication method shown in FIG. 18. FIG. 22 is a diagram illustrating an example of a communication path when a path abnormality occurs at multiple locations or a failure in a control target device occurs in the transfer method shown in FIG. 19. FIG. 23 is a diagram illustrating an example of a communication path when an abnormality occurs in a communication path adjacent to a control device in the replication method shown in FIG. 18. FIG. 24 is a diagram illustrating an example of a communication path when an abnormality occurs in a communication path adjacent to a control device in the transfer method shown in FIG. 19. FIG. 25 is a schematic diagram illustrating an example of an operation when the same logical address is assigned to and reads from multiple control target devices, with path redundancy applied as a premise of the control communication system according to the third embodiment. FIG. 26 is a schematic diagram illustrating an example of a method for responding to changes in system configuration using the logical address mechanism shown in FIG. 23. FIG. 27 is a schematic diagram illustrating an example of a method for responding to changes in system configuration using the logical address mechanism shown in FIG. 23. 14B, 14C, and 14D are diagrams showing examples of modifications of Fig. 14A, Fig. 14B, Fig. 14C, and Fig. 14D, respectively.

[0016] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all drawings used to explain the embodiments, the same components are generally designated by the same reference numerals, and repeated explanations thereof will be omitted. Furthermore, when there are multiple components having the same or similar functions, they may be described by adding different subscripts to the same reference numeral. For example, a single component may be designated by the reference numeral "1," and multiple components may be distinguished by "1a," "1b," etc. When it is not necessary to distinguish between these multiple components, the subscripts may be omitted in the description.

[0017] (First embodiment) <System example> Fig. 1 is a schematic diagram showing an example of the configuration of a control communication system according to a first embodiment. The control communication system shown in Fig. 1 includes a control system 123, a control system configuration device 124, and a control system management device 125. The control system 123 is composed of a control device 120, in other words, a control communication device, a control target device 121, and a control network 122. Examples of the control system 123 include control systems such as semiconductor manufacturing equipment, semiconductor testing equipment, medical equipment such as clinical testing equipment, and DCSs for FA (Factory Automation) and PA (Process Automation).

[0018] Further examples of the control system 123 include a remote control system via a wireless network, a monitoring control / protection control system in the power field, industrial equipment, an on-board system, a control system in construction machinery or railway vehicles, a railway ground signal system, and a control system in an aircraft. Alternatively, the control system 123 may be a component of an apparatus. For example, the control system 123 may be a chamber of an etching apparatus or a sputtering apparatus that is a semiconductor manufacturing apparatus, a manufacturing line of an FA system, an apparatus that constitutes a DCS, an on-board system, an aviation control system, or the like.

[0019] The control device 120 communicates with and controls the control target device 121 via the control network 122. The control device 120 transmits and receives communication packets to the control target device 121, such as a sensor or an actuator. As a result, the control device 120 transmits control command values ​​for controlling the control target device 121, acquires measurement values ​​and sensor information of the control target device 121, or performs various settings for the control target device 121.

[0020] The control device 120 may be, for example, a controller in a semiconductor manufacturing device or a semiconductor inspection device, a central control device in a distributed control system (DCS), or a protection control device in a power system, and may exchange sampling data, control commands, status signals, and the like within each control system. In this case, the control device 120 may store multiple pieces of data within the same control system in a packet. The control device 120 may also be configured to support software virtualization technology or software container technology, and to virtualize an application or an operating system (OS) and manage it as a container.

[0021] Examples of the control device 120 include a dedicated controller, an industrial PC, a control computer, a DCS controller, a MEC (Multi-access Edge Computing) device, a computer cloud or server, and a SCADA (Supervisory Control and Data Acquisition) server. Further examples of the control device 120 include a PLC (Programmable Logic Controller), an IED (Intelligent Electronic Device), a protection control device, a cloud, a server, and the like.

[0022] The controlled device 121 is a device such as a sensor or actuator, and executes control and various settings in response to control commands received from the control device 120 via the control network 122. The controlled device 121 also acquires the status 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 the function of inputting information like a sensor, may only have the function of outputting information like an actuator, or may have both input and output functions.

[0023] Examples of the controlled device 121 include industrial robots such as mobile robots, humanoid robots, and robot arms. Examples of the controlled device 121 include automated guided vehicles (AGVs), autonomous mobile robots (AMRs), autonomous mobile objects, and remote-controlled mobile objects. Examples of the controlled device 121 include chip mounters, machine tool tables, processing equipment, machine tools, semiconductor manufacturing equipment, semiconductor inspection equipment, and medical equipment such as clinical testing equipment, as well as motors, inverters, servo amplifiers, and servo motors within manufacturing equipment.

[0024] Alternatively, examples of the controlled device 121 include power equipment such as a circuit breaker or a disconnecting switch, and various sensors (encoders, temperature sensors, pressure sensors, etc.). Further examples of the controlled device 121 include dedicated controllers, industrial personal computers, control computers, DCS controllers, SCADA devices, PLCs, smartphones or communication devices equipped with wireless communication interfaces, IEDs (Intelligent Electronic Devices), MUs (Merging Units), and protection and control devices.

[0025] The control network 122 is a network that connects the control device 120 and one or more control target devices 121. Examples of the control network 122 include networks based on IEEE 802.3 (Ethernet (registered trademark)), such as EtherCAT (registered trademark), IEC 61784, and TSN (Time Sensitive Networking). Examples of IEEE 802.3 include standards that support communication speeds such as 100 Mbps, 1 Gbps, multi-gigabit Ethernet, and 10 Gbps, and the use of jumbo frames.

[0026] Examples of the control network 122 include core networks in wireless networks such as 5G, 6G, and 4G, and various wired networks such as CAN (Controller Area Network: registered trademark), RS-232C, and USB (Universal Serial Bus: registered trademark).Furthermore, examples of the control network 122 include various wireless networks such as Bluetooth (registered trademark).

[0027] 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). Examples of upper protocols include REST API, HTTP / 2, OpenAPI, JSON (JavaScript Object Notation) data, and IEC 61850. Alternatively, 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.

[0028] In this specification, an example will be described in which EtherCAT is used as the control network 122. An EtherCAT network has the following characteristics (1) to (3): (1) A control device 120, called a master, is connected to one or more control target devices (also simply referred to as devices) 121, called slaves. Control packets, specifically communication frames containing control packets, sent from the control device 120 travel in sequence through one or more control target devices 121 and return to the control device 120. Examples of topology include a line topology, a ring topology, and a star topology. If necessary, a relay device compatible with EtherCAT is used. (2) A single control packet may contain control data, specifically datagrams, for each of multiple control target devices 121. This allows the control device 120 to send and receive fewer packets than if it were to send and receive packets individually to each of the multiple control target devices 121. (3) The control packet contains control commands that indicate the access details to each of the multiple control target devices 121. When a control packet is sent from the control device 120, it is transferred to each control target device 121 in order in the order of connection on the network, and then returned to the control device 120 from which it was sent.

[0029] The control system configuration device 124 is a device that sets the configuration of the control system 123, and is also called, for example, a configurator. The settings include, for example, setting parameters and operation modes of the control device 120 and the controlled device 121. Alternatively, the settings include address assignment when mapping the controlled device 121 to a logical address, in other words, a virtual area, and settings of the controlled device 121 related to setting such logical addresses.

[0030] When making such settings, the control system configuration device 124 may determine the datagram for setting, transfer the determined information to the control device 120, and the control device 120 may transmit it to the controlled device 121. These may be executed as generation, editing, and management of EtherCAT Slave Information (ESI) and EtherCAT Network Information (ENI) in EtherCAT.

[0031] When the control system configuration device 124 is used to configure the control system 123 in this manner, configuration may be performed not only in an online state while the control system 123 is operating, but also in an offline state before the control system 123 is operated. In such a case, the connection between the control system configuration device 124 and the control device 120, or the connection between the control system configuration device 124 and the control target device 121, may be only during configuration. Alternatively, the control system configuration device 124 may be directly connected to the control target device 121 without going through the control device 120.

[0032] The connection referred to here includes not only a physical connection using the control network 122 or a network cable, but also a logical connection using a communication protocol, software for setting, etc. Examples of such a connection include a USB cable, a connection based on the JTAG (Joint Test Action Group) specification, and a connection using wireless communication such as a wireless LAN.

[0033] Furthermore, the control system configuration device 124 may store the output or product in a removable external storage medium without being physically connected to the control system 123, the control device 120, or the controlled device 121. In this case, the output or product is transmitted by attaching the external storage medium to the controlled device, such as the control device 120 or the controlled device 121. Examples of such external storage media include a USB memory, a CD, a DVD, a Blu-ray (registered trademark), a compact flash, and a floppy disk (FD).

[0034] The control system configuration device 124 may be implemented in the same manner as the control device 120. The control system configuration device 124 may be connected to the control device 120 via the control network 122, or may be connected to the control device 120 via a network independent of the control network 122.

[0035] The control system management device 125 is a device that connects to the control device 120 and controls and manages the control device 120. The control system management device 125, for example, sets and acquires control parameters and control policies necessary for the control device 120 to execute control. The control system management device 125 may also divide functions of the control device 120 in terms of time resolution. That is, the control system management device 125 may control the control parameters, target values, etc. of the control device 120 in a control period that is relatively long 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 125 may be used for manual control by a system operator.

[0036] The control system management device 125 may be implemented in the same manner as the control device 120. The control system management device 125 may be connected to the control device 120 via the control network 122, or may be connected to the control device 120 via a network independent of the control network 122.

[0037] 1 as an example of a control system, an IoT system may be added that analyzes information collected via the control network 122 using artificial intelligence or the like on the cloud or on the control system management device 125, and aims to improve the performance of the control system or apply diagnostic techniques such as preventive maintenance. These configurations may include a connection between the control system 123 and a higher-level system via wireless or public networks such as 5G.

[0038] <Hardware Configuration of Control Device 120> Figure 2 is a block diagram showing an example of the hardware configuration of the control device 120 in Figure 1. In Figure 2, a CPU 101, which is an example of a processor, transfers a program or software from a non-volatile storage medium 105 to a memory 104 and executes it. Examples of the execution processing program include an operating system (hereinafter referred to as OS) and an application program that runs on the OS. Based on such a program, the CPU 101 executes operations such as setting up the communication control IC 102 and obtaining status information about the communication control IC 102.

[0039] The communication control IC 102 receives a transmission request and transmission data from the CPU 101, which operates based on software, and transmits the data to the control network 122 using the PHY 103. The communication control IC 102 also 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.

[0040] Examples of 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 as an integrated part of the CPU 101.

[0041] The communication control IC 102 may be configured as an IEEE 802.3 communication device including a MAC layer and a PHY layer, or the PHY function, i.e., the PHY 103, may be included in the communication control IC 102. In this case, implementation examples of the communication control IC 102 include an IEEE 802.3 standard MAC (Media Access Control) chip, a PHY (physical layer) chip, and a combined MAC and PHY chip. The communication control IC 102 may be included in the CPU 101 or a chipset that controls information paths within the computer. Although the configuration in FIG. 2 shows one communication control IC 102, multiple communication control ICs 102 may be used.

[0042] 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 an IEEE 802.3 PHY (physical layer) chip. In the configuration example of FIG. 2 , the PHY 103 and the communication control IC 102 are connected, and therefore the IEEE 802.3 MAC layer processing is included in the communication control IC 102. However, a configuration in which an IC providing the 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 the MAC function and the PHY 103 is connected to the communication control IC 102 may also be used. Furthermore, 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.

[0043] 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 nonvolatile storage medium 105. The nonvolatile 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 nonvolatile 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.

[0044] The bus 106 connects the CPU 101, the communication control IC 102, the memory 104, and the nonvolatile 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.

[0045] <Functional Configuration of Control Device 120> Fig. 3 is a functional block diagram showing an example of the functional configuration of the control device 120 in Fig. 1. Fig. 4 is a diagram showing an example of the configuration of an EtherCAT frame transmitted on the control network 122 in Fig. 1. In Fig. 3, the calculation unit 150 executes control calculations, information processing calculations, etc. As an example of such calculations, the calculation unit 150 processes sensor information received from the control target device 121 and derives a control command for driving the control target device 121 based on a predetermined control law. Alternatively, the calculation unit 150 executes filtering or statistical processing applied to sensor values, statistical processing on a set of sensor values ​​over a predetermined period of time in the past, etc.

[0046] More specific examples of the calculation content of the calculation unit 150 include control calculations based on control engineering theory, such as feedback control and feedforward control, and control calculations using AI. Examples include control calculations that can change their state depending on past information, such as I (integral) control and state machine control. Other examples include statistical control calculations such as AI and machine learning processing for status management of the controlled device 121 (detection of failures and dangerous states), equipment management and asset management (software version management and updates, etc.), preventive maintenance, condition-based maintenance (CBM), and remaining life prediction.

[0047] Furthermore, if the controlled device 121 is a moving body, specific examples of the calculation content of the calculation unit 150 include control calculations such as determining the direction of movement and the target moving position, speed control, acceleration control, stopping, deceleration, etc. If the controlled device 121 is an industrial robot arm, specific examples of the calculation content include control calculations such as calculation of 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.

[0048] The control target device 121 is of various types and may be not only an actuator but also a simple sensor. Therefore, the calculation unit 150 executes control according to the type of the control target device 121. For example, the calculation unit 150 is configured by the CPU 101 or an application that runs on the CPU 101.

[0049] The data storage unit 151 is a functional unit that stores data to be communicated. The contents of the data storage unit 151 are updated by the calculation unit 150 or the datagram analysis unit 156. The data storage unit 151 holds data generated by the calculation unit 150 when executing predetermined control or information processing on an individual or multiple control target devices 121.

[0050] As a specific example, first, upon reception, received data is stored in data storage unit 151 by datagram analysis unit 156. The data stored in this manner is acquired by calculation unit 150 or datagram generation unit 153. Calculation unit 150 extracts data from data storage unit 151 to acquire sensor information and the like. Furthermore, datagram generation unit 153 extracts data from data storage unit 151 to generate a datagram upon transmission. The extracted data corresponds to, for example, data area 177 in FIG. 4 .

[0051] When multiple datagrams are generated by datagram generation unit 153, data storage unit 151 aggregates and stores multiple data portions of the datagram group. Data storage unit 151 may also manage data in units of communication cycles or control cycles determined by the control or information processing executed by calculation unit 150 and control target device 121. Data storage unit 151 may be implemented as either memory 104 or nonvolatile storage medium 105, or as a combination of both.

[0052] Datagram generation information storage unit 152 stores datagram generation information, in other words, communication control information, required for datagram generation unit 153 to generate datagrams. Datagram generation information storage unit 152 is implemented, for example, by one or more of CPU 101, memory 104, and non-volatile storage medium 105. Examples of datagram generation information include one or more of the following information (1) to (8):

[0053] (1) Information constituting the header of a datagram For example, in the case of an EtherCAT frame shown in Fig. 4, in other words, a control packet, examples include a command 179, an index 180, an address 181, a size 182, a CIRCLE 184, and a MORE 185. Note that since the IRQ 186 is mainly an event notification from the controlled device 121 side, it is optional whether or not to include it in the datagram generation information. (2) Information on the communication frame generation unit 154 to which the generated datagram is transferred A plurality of communication frame generation units 154 may be provided. (3) Information on the communication cycle

[0054] (4) Start time information The start time may be either a relative time or an absolute time. (5) Information on the expected value of the verification code (verification parameter) In the case of the EtherCAT frame shown in FIG. 4, this information corresponds to WKC178. At the time of reception, by comparing the value of WKC178 with the expected value, it is possible to verify whether the target datagram has been processed as expected. Since WKC178 is mainly used at the time of reception, it does not need to be used at the time of transmission. (6) Information on the transmission target status in a specified state machine This information is information for controlling whether a datagram is a transmission target, for the purpose of switching the set of datagrams to be transmitted. This information may simply be a truth value indicating whether or not the datagram is a transmission target.

[0055] (7) Transmission pattern information This information is pattern information indicating whether or not to transmit the target datagram for each communication cycle. (8) Valid / invalid information for datagram generation information For example, if some devices are disabled for reasons such as maintenance or cleaning, there is no need to generate and transmit datagrams to those devices. Therefore, this information can be used to invalidate the corresponding datagram generation information.

[0056] Datagram generation unit 153 extracts information necessary for generating a datagram from datagram generation information storage unit 152. The extracted datagram generation information includes a data position on data storage unit 151, and datagram generation unit 153 extracts data from data storage unit 151 based on the data position. Datagram generation unit 153 generates a datagram (control data) from the extracted data and datagram generation information (communication control information), and transfers it to communication frame generation unit 154. Datagram generation unit 153 is, for example, implemented by CPU 101, an application running on CPU 101, or communication control IC 102, or a combination of these.

[0057] The communication frame generation unit 154 shapes the datagram generated by the datagram generation unit 153 into a communication frame (for example, an EtherCAT frame in the case of the EtherCAT standard). The communication frame generation unit 154 may use multiple datagrams to construct a communication frame. In addition, the communication frame generation unit 154 may hold or calculate and add header information and tail information necessary to construct a communication frame. For example, in the case of the EtherCAT standard, this information corresponds to an Ethernet header 171 and an FCS (Frame Check Sequence) 173.

[0058] The communication frame generation unit 154 transfers the constructed communication frame to the transmission unit 155. The communication frame generation unit 154 may be implemented in 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 transmission unit 155 is a transmission function unit used when transmitting packets from the control device 120 to the control network 122. The transmission unit 155 may be implemented in one or more of the communication control IC 102 and the PHY 103.

[0059] The datagram analysis unit 156 analyzes the datagram transferred from the communication frame disassembly unit 157 and updates the data storage unit 151 according to the received content. The datagram analysis unit 156 may be implemented in one or more of the CPU 101, an application running on the CPU 101, the communication control IC 102, and the PHY 103, for example.

[0060] The communication frame disassembly unit 157 receives the received frame transferred from the receiving unit 158, removes the header and tail information, and disassembles the frame into datagram units. The communication frame disassembly unit 157 transfers the disassembled datagrams to the datagram analysis unit 156. The communication frame disassembly unit 157 may be implemented in one or more of the CPU 101 or an application running on the CPU 101, the communication control IC 102, and the PHY 103.

[0061] The receiving unit 158 ​​is a receiving function unit that receives packets from the control network 122. The receiving unit 158 ​​may verify the frame check sequence (FCS) to determine the validity of the received packet, or may discard a received packet that is determined to be abnormal. The receiving unit 158 ​​may be implemented in either or both of the communication control IC 102 and the PHY 103, for example.

[0062] The communication unit 159 is a functional unit that connects to the control network 122 and communicates in accordance with the communication protocol of the control network 122, and includes a transmitter (in other words, a communication port) 155 and a receiver (in other words, a communication port) 158. In the configuration example of FIG. 2 , the PHY 103 is located outside the communication control IC 102, so the communication unit 159 corresponds to a processing unit of the MAC layer. However, the communication control IC 102 may be an Ethernet communication device including the MAC layer and the PHY layer, or the PHY function may be included in the communication control IC 102. For example, the communication unit 159 may be implemented in either the communication control IC 102 or the PHY 103, or in a combination of both.

[0063] The control-target device selection unit 160 selects a control-target device 121 in order to temporarily add, stop, disable, or remove the control-target device 121 due to, for example, maintenance, planned shutdown, etc. The control-target device selection unit 160 transmits the identifier of the selected control-target device 121 to the datagram generation information modification unit 161. Note that the control-target device selection unit 160 may transmit not only the identifier of the control-target device 121 to the datagram generation information modification unit 161, but also information related to the control-target device 121.

[0064] Examples of information related to the control target device 121 include the performance and specifications of the control target device 121, its connection position in the control network 122, and a target period. The connection position refers to the connection position when the selected control target device 121 is newly added, or the previous connection position when the selected control target device 121 is removed. The target period refers to the period during which the selected control target device 121 is stopped or enabled.

[0065] Note that there may be multiple control-target devices 121 to be selected. The processing for the selected control-target device 121 may be, for example, any of adding, stopping, disabling, and removing, and may be different from each other. Specific examples of processing for the control-target device 121 include physically removing it from the control system 123, functionally stopping it while it remains connected to the control network 122 (for example, turning off the power), and not processing packets or ignoring instructions from the control device 120 while keeping it powered on.

[0066] The control target device selection unit 160 is implemented, for example, in one or more of the CPU 101 or an application running on the CPU 101, the communication control IC 102, and the PHY 103. Alternatively, the control target device selection unit 160 may be realized by configuring an HMI (Human Machine Interface) such as a GUI (Graphical User Interface) in the control system management device 125.

[0067] In this case, for example, an operator operates the HMI of the control system management device 125 to select the control target device 121, and the control system management device 125 notifies the control device 120 of the result. The attached information of the selected control target device 121 (such as the functions, specifications, and connection location of the control target device 121) may be stored in advance in the control system management device 125 and then transmitted to the control device 120. Alternatively, the control system management device 125 may notify the control device 120 of only the identifier information of the control target device 121, and the control device 120 may select the attached information from the notified identifier of the control target device 121. In this case, for example, the attached information of the control target device 121 may be stored in the control system configuration information storage unit 162.

[0068] Datagram generation information modification unit 161 acquires related information from control system configuration information storage unit 162 based on the information about control target device 121 notified by control target device selection unit 160, and modifies the datagram generation information stored in datagram generation information storage unit 152. Datagram generation information modification unit 161 is, for example, implemented by CPU 101 or an application running on CPU 101.

[0069] The control system configuration information storage unit 162 stores the control system configuration information of the control system 123. The control system configuration information may be, for example, any or all of the correspondences between the control target device 121, the datagram generation information stored in the datagram generation information storage unit 152, and the logical address, in other words, the virtual area allocation information. For example, the control system configuration information may be information indicating which datagram generation information, i.e., datagram, a communication to a certain control target device 121 corresponds to, and which logical address the datagram is intended for. These correspondences are not limited to one-to-one correspondences, but may be one-to-many or many-to-many correspondences.

[0070] That is, for example, with regard to a many-to-many correspondence, there may be a plurality of datagrams to be communicated to a certain control target device 121, while there may also be a plurality of control target devices 121 that are the communication targets of a certain datagram. The same applies to the correspondence relationship between the control target devices 121 and the allocation of logical addresses, where the input / output area of ​​a certain control target device 121 may be allocated to a plurality of logical address areas, while a certain logical address area may contain a plurality of control target devices 121.

[0071] Note that one logical address area here refers to, for example, an area allocated to a continuous address space, and in the case of EtherCAT, it is an area managed by one FMMU (Fieldbus Memory Management Unit). It is possible to associate multiple control target devices 121 with the same logical address, such as when the same logical address is specified for the FMMUs of different control target devices 121. Furthermore, the control system configuration information is not limited to logical addresses, and may also include auto-increment addresses and station addresses corresponding to each control target device 121.

[0072] The control system configuration information storage unit 162 is implemented, for example, by one or more of the CPU 101, the memory 104, and the non-volatile storage medium 105. The control system configuration information is implemented, for example, by a software database, a file format such as CSV (Comma Separated Values), XML (Extensible Markup Language), or JSON (JavaScript Object Notation), or a structure or object in a predetermined programming language instantiated on the software.

[0073] The abnormality determination unit 163 determines an abnormality based on one or more of information about the received communication frame, the contents and reception timing of the received datagram transferred from the communication frame disassembly unit 157, information stored in the datagram generation information storage unit 152, and settings from the system operator. When making a determination based on information about the communication frame, the communication frame disassembly unit 157 may extract the information and notify it to the datagram analysis unit 156. When making a determination based on the received datagram, a determination may be made collectively for multiple received datagrams that make up the communication frame.

[0074] In detail, the abnormality determination unit 163 may determine an abnormality when one or more of the following criteria are met: a) The WKC 178 of the received datagram differs from an expected value predetermined from the configuration plan and settings of the control system 123. b) The time elapsed from the transmission of the target communication frame or datagram to its reception exceeds a predetermined value. c) An error is detected in the FCS 173 of the received communication frame. d) The number of datagrams for which the WKC 178 does not match the expected value in a) is equal to or greater than a predetermined number. e) The proportion of the number of datagrams for which the WKC 178 does not match the expected value in a) to the total number of received datagrams that make up the communication frame is equal to or greater than a predetermined value.

[0075] When multiple conditions are taken into consideration, the determination may be made using a logical expression consisting of the respective conditions. For example, d & e (d and e). In addition, the expected value of WKC178 in a) may be included in and held in the datagram generation information.

[0076] Here, examples of the transmission timing in b) are as follows: The timing when the datagram generation unit 153 starts generating a datagram. The timing when the communication frame generation unit 154 starts generating a communication frame. The timing when the first datagram is transferred from the datagram generation unit 153 to the communication frame generation unit 154. The timing when the last datagram is transferred from the datagram generation unit 153 to the communication frame generation unit 154. The timing when the head of a communication frame is transferred from the communication frame generation unit 154 to the transmission unit 155. The timing when the tail of a communication frame is transferred from the communication frame generation unit 154 to the transmission unit 155. The timing when the head of a communication frame is sent out from the transmission unit 155. The timing when the tail of a communication frame is sent out from the transmission unit 155.

[0077] On the other hand, examples of reception timing in b) are as follows: - The timing when the datagram analysis unit 156 starts analyzing a datagram. - The timing when the communication frame disassembly unit 157 starts disassembling a communication frame. - The timing when the datagram analysis unit 156 completes analyzing the first datagram. - The timing when the datagram analysis unit 156 completes analyzing the last datagram. - The timing when the head of a communication frame is transferred from the receiving unit 158 ​​to the communication frame disassembly unit 157. - The timing when the tail of a communication frame is transferred from the receiving unit 158 ​​to the communication frame disassembly unit 157. - The timing when the receiving unit 158 ​​receives the head of a communication frame. - The timing when the receiving unit 158 ​​receives the tail of a communication frame.

[0078] At the reception timing in b), the abnormality determination unit 163 may verify the FCS 173 and determine that the received communication frame has been received after confirming that there is no problem with the communication frame. If the abnormality determination unit 163 determines that an abnormality has occurred, it may notify the outside. Examples of means for notifying the outside include notification to an external device such as the control system management device 125, visual presentation using an HMI or the like, and presentation using an LED on the control device 120. For example, the abnormality determination unit 163 may be implemented in one or more of the CPU 101, an application running on the CPU 101, the communication control IC 102, and the PHY 103.

[0079] The retransmitting unit 164 retransmits the communication frame when the abnormality determination unit 163 determines that an abnormality has occurred. For example, the retransmitting unit 164 stores, in order to retransmit, the communication frame transmitted from the communication frame generation unit 154 to the transmission unit 155 or the datagram transmitted from the datagram generation unit 153 to the communication frame generation unit 154. When the abnormality that has occurred is in datagram units (for example, a mismatch in the WKC178 expected value), the retransmitting unit 164 may construct and retransmit a communication frame using only the corresponding datagram, or may retransmit the entire communication frame that included the corresponding datagram.

[0080] 3, the retransmitting unit 164 is configured as an independent functional unit, but the retransmitting unit 164 may not be provided, and either or both of the datagram generating unit 153 and the communication frame generating unit 154 may have a retransmission function and retransmit based on a notification of an abnormality determination from the abnormality determining unit 163. Also, while the datagram generating unit 153 and the communication frame generating unit 154 are each connected to the retransmitting unit 164, only one of them may be connected. Alternatively, the retransmitting unit 164 may be independent and access the datagram generation information storage unit 152 in the same way as the datagram generating unit 153 to generate a datagram.

[0081] The retransmitting unit 164 has an enabling / disabling function and may retransmit only when it is enabled and when it receives a notification of an abnormality determination from the abnormality determination unit 163. The timing of retransmission by the retransmitting unit 164 may be the timing when it receives a notification of an abnormality determination from the abnormality determination unit 163, or may retransmit after a predetermined time has elapsed. Alternatively, after receiving a notification of an abnormality determination from the abnormality determination unit 163, the retransmitting unit 164 may retransmit after a predetermined time has elapsed from the timing of transmission by any of the datagram generation unit 153, the communication frame generation unit 154, and the transmission unit 155 of the communication frame or datagram in which an abnormality occurred. For example, the retransmitting unit 164 may be implemented by one or more of the CPU 101, an application running on the CPU 101, the communication control IC 102, and the PHY 103.

[0082] The timekeeping unit 165 is a functional unit that manages the passage of time. The timekeeping unit 165 measures the elapsed time of events within each functional unit or between functional units in FIG. 3 , and times the occurrence time of a specific event. The time measured here may be 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, EtherCAT shows a configuration in which, among the control target devices 121, the control target device 121 that supports the Distributed Clock protocol (DC) and is closest to the control device 120 is used as the reference time.

[0083] Events that are measured by the timing unit 165 include the sending and receiving times of a specified communication frame or datagram, the data transfer time between functional units, and the data processing time or data retention period within a functional unit. Alternatively, the timing unit 165 may generate an interrupt when a specified time has elapsed or when a specified time has been reached, and notify other functional units of this. In this case, the timing unit 165 may periodically generate and notify interrupts. Examples of implementation of the timing unit 165 include a timing device (such as a quartz oscillator or timer device) in 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.

[0084] 3 shows one transmitter 155 and one receiver 158, the system may include a plurality of communication control ICs 102 and PHYs 103, and a plurality of transmitters 155 and receivers 158. When a plurality of transmitters 155 are included, a datagram generator 153 and a communication frame generator 154 may be provided for each transmitter 155. Alternatively, a communication frame may be transferred from one communication frame generator 154 to a plurality of transmitters 155, or a datagram may be transferred from one datagram generator 153 to a plurality of communication frame generators 154.

[0085] In this case, when datagram generation unit 153 transfers a datagram to communication frame generation unit 154, it also transfers information indicating to which transmitter 155 the communication frame including the datagram should be transferred. Alternatively, the datagram generation information in datagram generation information storage unit 152 may include an identifier of the transmitter 155 that will transmit the datagram, and communication frame generation unit 154 may check the datagram generation information in datagram generation information storage unit 152. In this case, taking into account that transmission may be possible from multiple transmitters 155, the datagram generation information may include multiple identifiers of transmitters 155.

[0086] Similarly, when multiple receiving units 158 are included, a datagram analysis unit 156 and a communication frame disassembly unit 157 may be provided for each receiving unit 158. Alternatively, communication frames may be transferred from multiple receiving units 158 to one communication frame disassembly unit 157, or datagrams may be transferred from multiple communication frame disassembly units 157 to one datagram analysis unit 156. In this case, when transferring a datagram to the datagram analysis unit 156, the communication frame disassembly unit 157 may also transfer information indicating from which receiving unit 158 ​​the communication frame including the datagram has been transferred.

[0087] <Hardware Configuration of Control Target Device 121> Fig. 5 is a block diagram showing an example of the hardware configuration of the control target device 121 in Fig. 1. Here, a description will be given of an example of a control target device 121 that complies with the EtherCAT specification defined in Communication Profile Family 12 of IEC 61158 and IEC 61784 Part 2. However, the control target device 121 according to the embodiment is not limited to the EtherCAT specification.

[0088] 5 , a CPU 101 controls a communication control IC 130 for a controlled device via a bus 106. Peripheral devices may also be connected to the CPU 101, and the CPU 101 may control sensors and actuators via the peripheral devices (not shown). The communication control IC 130 for a controlled device communicates with a control network 122 via multiple PHYs 103. The communication control IC 130 for a 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.

[0089] Furthermore, the control target device communication control IC 130 may use the nonvolatile storage medium 105 to store and refer to information necessary for communication. The control target device communication control IC 130 is connected to the CPU 101 via the bus 106, but may also be directly connected to the CPU 101 using a dedicated bus. Furthermore, either the memory 104 or the nonvolatile storage medium 105, or both, dedicated to the control target device communication control IC 130 may be provided separately to store information necessary for processing by the control target device communication control IC 130.

[0090] The input / output device 131 is an input / output interface for acquiring sensor values ​​from sensors constituting the control target device 121 and for controlling actuators constituting the control target 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 or analog input / output ICs, driver ICs, etc.

[0091] Here, one signal line from the input / output device 131 is shown, but multiple lines may be provided depending on the configuration of the controlled device 121. The controlled device 121 may also be configured to include multiple input / output devices 131. The input / output device 131 may simply input information to a connected sensor, or may simply output information to a connected actuator, or may have both input and output functions. Note that the controlled device communication control IC 130 may include multiple of the CPU 101, memory 104, and nonvolatile storage medium 105 to form a one-chip communication control IC.

[0092] <Functional Configuration of the Control Target Device Communication Control IC 130> Figure 6 is a block diagram showing an example of the functional configuration of the control target device communication control IC 130 in Figure 5. In Figure 6, for example, four sets of communication port functions each consisting of a communication transfer control unit 141 and a communication unit 142 are provided. In addition, the communication processing unit 140 is connected between the communication transfer control unit 141a and the communication transfer control unit 141d associated with the two communication port functions. The communication processing unit 140 is an IC that executes communication processing in accordance with the EtherCAT specification, and an example of its implementation is an EtherCAT Processor Unit (EPU). Note that the communication processing unit 140 may be configured by connecting it to other calculation functions and input / output functions (not shown).

[0093] The communication transfer control unit 141 is a functional unit that transfers received packets to an adjacent communication transfer control unit 141 or a communication unit 142. The transfer direction between the communication transfer control units 141 is constant within the control target device communication control IC 130, for example, in the order of communication transfer control units 141a, b, c, and d. In addition, the communication transfer control unit 141 transfers packets to the communication unit 142 or to an adjacent communication transfer control unit 141 based on the settings from the communication processing unit 140 and the connection status of the communication path to which the communication unit 142 connects.

[0094] 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. The communication unit 142 is configured by a transmission unit 167 and a reception unit 168. For example, the communication unit 142 is implemented by either the control target device communication control IC 130 or the PHY 103, or by a combination of both.

[0095] The input / output unit 143 is an input / output function for acquiring sensor values ​​from sensors constituting the control target device 121 or for controlling actuators constituting the control target device 121. The input / output unit 143 is, for example, configured by the input / output device 131. The bus 144 is a communication line for connecting to one or more of the CPU 101, the memory 104, and the non-volatile storage medium 105, and is, for example, configured by the bus 106 in FIG. 5 .

[0096] <Functional Configuration of Control System Configuration Device 124> Fig. 7 is a block diagram showing an example of the functional configuration of the control system configuration device 124 in Fig. 1. The hardware configuration of the control system configuration device 124 is the same as that of the control device 120 shown in Fig. 2. In Fig. 7, the system information storage unit 110 stores information of the control system 123. Specifically, examples of the information of the control system 123 include control processing and information processing requests executed on the control system 123, and requests from the control device 120 and the control target device 121. Examples of such requirements include a control period, a communication period, the input / output capacity of the control target device 121, and whether periodic communication is required.

[0097] Examples of information about the control system 123 include the number of control devices 120 and control target devices 121, the specifications and performance of computer resources, communication performance, and the configuration of the communication network. Further examples include the frequency, number of cores, bit width, and architecture of the CPU 101, the storage capacity of the memory 104 or non-volatile storage medium 105, communication throughput, transfer throughput of the bus 106, and the communication bandwidth and connection distance of the control network 122. Computer resources such as the CPU, memory, and non-volatile storage medium include both the control device 120 and the control target devices 121.

[0098] The information of the control system 123 may also include information dependent on the implementation of the communication protocol of the control network 122. For example, in the case of EtherCAT, this information may include the number of FMMUs and Sync Managers supported in the control target device 121. Furthermore, if the control network 122 includes a relay device, the information of the control system 123 may include the computer resources, communication performance, and network topology of the relay device, as well as configuration information of the control network 122 (such as the settings of each communication port of the relay device).

[0099] The control system information storage unit 110 may receive information manually input 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) via EtherCAT. The control system information storage unit 110 may be implemented by one or more of the CPU 101, an application running on the CPU 101, the memory 104, and the non-volatile storage medium 105.

[0100] The datagram generation information planning unit 111 determines the datagram generation information to be stored in the datagram generation information storage unit 152 shown in FIG. 3 based on the information stored in the control system information storage unit 110 and the logical address space allocation determined by the logical address allocation planning unit 113. Examples of the datagram configuration determined by the datagram generation information planning unit 111 include the size of each datagram and parameters on the header (such as the logical address space of the access destination). Note that 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 pieces. The datagram generation information planning unit 111 may be implemented by one or more of the CPU 101, an application running on the CPU 101, the memory 104, and the non-volatile storage medium 105.

[0101] The control system configuration information constructor 112 constructs configuration information of the control system 123 to be stored in the control system configuration information storage unit 162 shown in FIG. An example of such configuration information is a correspondence between any or all of the three: the controlled device 121, the datagram generation information, and the logical address allocation information. The correspondence is constructed based on any or all of the datagram generation information planned by the datagram generation information planning unit 111, the information stored in the control system information storage unit 110, and the logical address space allocation planned by the logical address allocation planning unit 113. The control system configuration information constructor 112 is, for example, implemented by any or all of the CPU 101, an application running on the CPU 101, the memory 104, and the non-volatile storage medium 105.

[0102] The logical address allocation planning unit 113 plans 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 110. A logical address space is an address space created by allocating inputs and outputs of actuators and sensors to a predetermined address space. In the logical address space, any data area (i.e., physical inputs and outputs) possessed by each slave is allocated to a single virtual logical address space. The size and allocation method of the area can be freely set. For example, the logical address allocation planning unit 113 may be implemented in one or more of the CPU 101, an application running on the CPU 101, the memory 104, and the non-volatile storage medium 105.

[0103] The planning of datagram generation information by the datagram generation information planning unit 111 and the planning of logical address space allocation by the logical address allocation planning unit 113 may be executed in order, with either being executed first. For example, after the logical address allocation planning unit 113 plans the allocation of logical address space, it notifies the datagram generation information planning unit 111 of the allocation information of the logical address space, and the datagram generation information planning unit 111 plans the datagram generation information based on the notified allocation of logical address space.

[0104] Alternatively, the datagram generation information planning unit 111 may plan datagram generation information so as to satisfy the control requirements and communication requirements of the control target device 121, and then notify the logical address allocation planning unit 113 of the datagram generation information, which may then plan allocation of the logical address space based on the notified datagram generation information. In this case, the logical address allocation planning unit 113 may again notify the datagram generation information planning unit 111 of the determined allocation information of the logical address space, and the datagram generation information planning unit 111 may then determine the value of the access destination logical address of the datagram that accesses the logical address space.

[0105] Alternatively, the datagram generation information planning unit 111, the logical address allocation planning unit 113, or both may define constraints, satisfaction conditions, and convergence conditions, and the planning results may be notified to each other and the planning operation may be repeated until those conditions are satisfied. Examples of constraints include that in the planning of datagram generation information in the datagram generation information planning unit 111, the number of planned datagrams must be equal to or less than a predetermined number, and that when the allocated logical address space in the logical address allocation planning unit 113 is divided into areas of consecutive addresses, the number of areas must be equal to or less than a predetermined number.

[0106] As an example of operation, first, the logical address allocation planning unit 113 plans the allocation of logical address space and notifies the datagram generation information planning unit 111. Next, if the datagram generation information planning unit 111 cannot reduce the number of datagrams to a predetermined number or less in the notified logical address space, it requests the logical address allocation planning unit 113 to plan the allocation of logical address space again. In this way, the planning operations of the datagram generation information planning unit 111 and the logical address allocation planning unit 113 are repeated until the conditions are satisfied. Furthermore, if the plan does not converge even after a predetermined number of repetitions, the operator or an external party may be notified that the plan has failed.

[0107] <Operation Procedure of Control System Configuration Device 124> Fig. 8 is a flowchart showing an example of the operation procedure of each functional unit of the control system configuration device 124 shown in Fig. 7. Figs. 9A, 9B, 9C, and 9D are diagrams showing specific examples of the operation procedure shown in Fig. 8. In Fig. 8, first, the logical address allocation planning unit 113 acquires information about the control system 123 from the control system information storage unit 110 and plans the allocation of inputs / outputs, etc. of each control target device 121 to a logical address space (step S001). As mentioned above, the datagram generation information planning unit 111 and the logical address allocation planning unit 113 can operate independently, but Fig. 8 describes an example in which they operate in sequence.

[0108] For example, assuming the control system 123 shown in FIG. 9A, the control system information storage unit 110 stores, as control system information, the size of the input / output space of each control target device 121 (for example, 400 bytes for the control target device 121A), the input / output direction (for example, the control target device 121A is a sensor, and the read access is an input from the perspective of the control device 120), and the network topology. For example, the logical address allocation planning unit 113 plans allocation to the logical address space shown in FIG. 9B based on this information. While various methods for allocation to the logical address space are conceivable, for example, in FIG. 9B, the following steps (1) to (3) are followed.

[0109] (1) Each control target device 121 is divided into groups based on the input / output direction. As a result, the control target devices 121 are divided into two groups: the input (read) control target devices 121A, B, C, D, and E, and the control target device 121F. (2) An area in the logical address space is assigned to each group. In FIG. 9B, an area 190a starting from 0x00000000 and an area 190b starting from 0x00001000 are assigned to each group. Note that the starting address of the area 190b assigned to the second group is 0x00001000, but the starting address can be any value as long as it does not overlap with the area 190a of the first group. For example, it can be an address consecutive to the area 190a. (3) Within each group divided in (1), each control target device 121 is assigned to the logical address space in the order of connection to the control device 120.

[0110] 9B, in the first group, I / O is allocated from the top of area 190a to the control target devices 121A, B, C, D, and E in that order. The second group contains only control target device 121F, so I / O is allocated from the top of area 190b. In this way, in FIG. 9B, I / O of the control target devices 121 is allocated to the logical address space taking into consideration two attributes, I / O direction and connection order, in order.

[0111] Other allocation methods are possible, such as changing the grouping and allocation order based on attributes such as data size and communication cycle (not shown in FIG. 9A ). Alternatively, allocation to the logical address space may be determined based on attributes such as the input / output direction, connection order, data size, communication cycle, and device type of the control target device 121. Alternatively, the order in which each attribute is applied may be changed when determining the arrangement in the logical address space.

[0112] Alternatively, if the control device 120 includes multiple communication units 159, allocation to the logical address space may be determined by the communication unit 159 to which the target control device 121 is connected. For example, for each group of control target devices 121 connected to the same communication unit 159, allocation to the logical address space may be performed in order according to the attributes such as the input / output direction, connection order, data size, and communication cycle.

[0113] 8, next, the datagram generation information planning unit 111 plans datagram generation information based on the information on the control system 123 stored in the control system information storage unit 110 and the logical address space allocation information planned by the logical address allocation planning unit 113 (step S002). As an example, the datagram generation information (communication control information) shown in FIG. 9C is exemplified.

[0114] 9B, since each area 190 is grouped based on the input / output direction, the same commands can be applied within the area 190. Since area 190a is the input direction, it can be grouped into datagrams of LRD commands, which are reads to logical addresses. Similarly, since area 190b is the output direction, it can be grouped into datagrams of LWR commands, which are writes to logical addresses.

[0115] However, because there is an upper limit to the data size of an Ethernet frame or EtherCAT datagram, there is a limit to the input / output of the controlled target device 121 that can be aggregated. In the configuration shown in Figure 9C, the controlled target devices 121A, B, and C are aggregated into datagram [1]. When only one EtherCAT datagram is stored in an Ethernet frame, the upper limit of the data size is 1,486 bytes. The combined input / output of the controlled target devices 121A, B, and C is 1,000 bytes (= 400 bytes + 400 bytes + 200 bytes), and when the controlled target device 121D is included, the total is 1,500 bytes, exceeding the upper limit of 1,486 bytes.

[0116] 9C, the control target devices 121A, B, and C are aggregated into datagram [1]. Similarly, the control target devices 121D and E are aggregated into datagram [2]. Datagrams [1] and [2] are both LRD commands. In this way, when composing a datagram, it is necessary to ensure that it fits within the upper limits of the communication frame and datagram.

[0117] In the configuration shown in FIG. 9C, the datagram is structured for each control target device 121, but may be subdivided without being limited to this. That is, the area of ​​the control target device 121D may be divided and included in each of datagrams [1] and [2]. For example, when including data up to the upper limit, the first 486 bytes (= 1486 bytes - 1000 bytes) of the input / output of the control target device 121D may be included in datagram [1], and the remaining 14 bytes (= 500 bytes - 486 bytes) may be included in datagram [2]. In addition, in the configuration shown in FIG. 9C, the control target device 121F is datagram [3], and is an LWR command.

[0118] The datagram generation information also includes the expected value of the WKC 178. The control device 120 transmits a datagram including the WKC 178 to the control network 122. Each control target device 121 processes the received datagram and updates the value of the WKC 178 as appropriate. The control device 120 then receives the datagram with the value of the WKC 178 updated in this manner.

[0119] The expected value of WKC178, which is a verification parameter, is determined based on the number of controlled target devices 121 that process the datagram. Datagram [1] is addressed to controlled target devices 121A, B, and C, so the expected value of WKC178 is set to 3. Similarly, datagram [2] is addressed to controlled target devices 121D and E, so the expected value of WKC178 is set to 2, and datagram [3] is addressed to controlled target device 121F, so the expected value of WKC178 is set to 1.

[0120] 8, after step S002, the control system configuration device 124, for example, the control system configuration information creation unit 112, determines whether the logical address space allocation planned by the logical address allocation planning unit 113 and the datagram generation information planned by the datagram generation information planning unit 111 satisfy predetermined conditions (step S003). Examples of such conditions include the following. Note that the control system configuration device 124 may make its determination based on a combination of any two or more of these conditions.

[0121] Whether the datagram generation information planned by the datagram generation information planning unit 111 is executable. Whether there is any overlap between the logical address space areas 190 planned by the logical address allocation planning unit 113. Whether the search method or optimization method, if applied to the logical address space allocation planning by the logical address allocation planning unit 113 or the datagram generation information planning by the datagram generation information planning unit 111, has been executed a predetermined number of times. In this case, an example is to adopt an optimal plan based on indicators such as minimizing the number of datagrams or the number of communication frames or maximizing the utilization efficiency of the communication bandwidth. Whether indicators such as the number of datagrams or the utilization efficiency of the communication bandwidth satisfy predetermined values ​​determined based on information about the control system. For example, optimal values ​​for the number of datagrams or the number of communication frames are determined based on the number of control target devices 121, the direction of input / output, and the data size, and whether the number of datagrams planned by the datagram generation information planning unit 111 is that optimal value.

[0122] In addition, as the number of datagrams increases, areas such as headers and WKCs become overhead, reducing the efficiency of communication bandwidth utilization, so it is desirable to have a small number of datagrams. Similarly, as the number of communication frames increases, headers and inter-frame gaps become overhead, reducing the efficiency of communication bandwidth utilization, so it is desirable to have a small number of communication frames. Furthermore, since there is a set upper limit on the data size of communication frames and datagrams, once the total data size of input and output of the control target device 121 is determined, the theoretically smallest number of communication frames or datagrams can be determined.

[0123] For example, if the total data size of input and output of the control target device 121 is 2000 bytes, the upper limit of the data size of one datagram is 1486 bytes, so the minimum number of datagrams is 2. Since the upper limit of the data size of an Ethernet frame is also 1498 bytes, the minimum number of Ethernet frames is also 2. Therefore, since the optimal value for the number of datagrams is 2, an example is shown in step S003 where it is determined whether the number of datagrams planned by the datagram generation information planning unit 111 is 2. Note that in step S003, it is also possible to proceed to step S004 without setting any particular predetermined condition.

[0124] If it is determined in step S003 that the predetermined conditions are satisfied (Y in step S003), the control system configuration information construction unit 112 constructs control system configuration information (step S004). An example of control system configuration information is shown in FIG. 9D. In FIG. 9B, the control target devices 121A, B, and C are assigned to area 190a of the logical address space in order from the beginning, and these are included in datagram [1] as shown in FIG. 9C. Therefore, in the control system configuration information shown in FIG. 9D, the control target devices 121A, B, and C are associated with datagram [1] and area 190a.

[0125] Similarly, control target devices 121D and 121E are associated with datagram [2] and area 190a. Control target device 121F is associated with datagram [3] and area 190b. In this way, the control system configuration information represents the correspondence between control target devices 121 and datagrams (control data), and in detail includes the information shown in Figure 9D and the information shown in Figure 9B, which is related to Figure 9D.

[0126] On the other hand, if it is determined in step S003 that the predetermined condition is not satisfied (N in step S003), the control system configuration device 124 returns to step S001. In this case, the control system configuration device 124 may return to step S002 without changing the allocation to the logical address space.

[0127] After step S004, the datagram generation information planning unit 111 transmits the planned datagram generation information to the datagram generation information storage unit 152 of the control device 120 (step S005). Also, the control system configuration information building unit 112 transmits the built control system configuration information to the control system configuration information storage unit 162 of the control device 120 (step S006).

[0128] Steps S005 and S006 may be executed in parallel as shown in Fig. 8, or one may be executed first and the other may be executed in order. Furthermore, the datagram generation information and the control system configuration information to be sent to the control device 120 may be transmitted in the same communication (communication frame or session or connection in a higher-level protocol). After executing steps S005 and S006, the control system configuration device 124 ends the operation procedure shown in Fig. 8.

[0129] In step S002, the datagram generation information planned by the datagram generation information planning unit 111 may include not only datagrams for accessing logical addresses but also datagrams for initialization such as setting logical addresses and managing state transitions (EtherCAT State Machine in EtherCAT) in the control target device 121. Furthermore, the datagram generation information planning unit 111 may plan a communication schedule, such as the transmission timing and communication cycle of each datagram, based on the information of the control target device 121 held in the control system information storage unit 110.

[0130] Furthermore, if the control device 120 has multiple communication units 159, the datagram generation information planning unit 111 may plan the datagram generation information separately for each communication unit 159. In this case, if the datagram generation information planned separately for each communication unit 159 includes an expected value of WKC 178, the expected value of WKC 178 is determined based on the control target device 121 connected to each communication unit 159. Alternatively, only the expected value of WKC 178 may be defined for each communication unit 159 within certain datagram generation information. Furthermore, if the control device 120 has multiple communication units 159, the control system configuration information created by the control system configuration information creation unit 112 may include an identifier of the communication unit 159 of the control device 120 to which the target control target device 121 is connected.

[0131] Furthermore, in the control system configuration information constructed by the control system configuration information constructor 112, the association of logical addresses with areas 190 is optional and need not be included in the control system configuration information. Alternatively, if the association with areas 190 is included in the control system configuration information, each logical address area 190 may be associated with a storage position of data in the data storage unit 151 in the data storage unit 151 of the control device 120. For example, in FIG. 9B , area 190a occupies an area of ​​2000 bytes from logical address 0x00000000, and therefore, in the data storage unit 151, an area of ​​2000 bytes from a predetermined address (e.g., 0x00000000) can be used as the data area for the control target devices 121A, B, C, D, and E, just like area 190a.

[0132] <Transmission Processing Procedure of Control Device 120> Figure 10 is a flowchart showing an example of the execution procedure of the transmission processing in the control device 120 shown in Figure 3. In Figure 10, first, the datagram generation unit 153 waits for the timing to start execution (step S010). The execution start timing of the datagram generation unit 153 is determined based on, for example, the control system configuration information, the transmission timing and communication cycle specified in the control system information, etc. The control system configuration information is held in the control system configuration information storage unit 162, and the control system information is held in the control system information storage unit 110 in the control system configuration device 124.

[0133] Alternatively, the execution start timing of the datagram generation unit 153 may be determined by a notification from the calculation unit 150. Examples of notifications from the calculation unit 150 to the datagram generation unit 153 include notifications of the start or completion of data access by the calculation unit 150 to the data storage unit 151. Alternatively, the execution start timing may be a transmission timing defined in the datagram generation information. Alternatively, the execution start timing may be determined based on a period that is the greatest common divisor of periods defined in multiple pieces of datagram generation information.

[0134] The initial start time may be a predetermined time set by a system operator or the like, and may be based on the time of the control device 120 itself. Alternatively, the initial start time may be based on a time system synchronized by a time synchronization protocol such as the Distributed Clock protocol.

[0135] Next, datagram generation unit 153 extracts datagram generation information from datagram generation information storage unit 152 (step S011). Datagram generation unit 153 then determines whether the datagram generation information extracted in step S011 is a target for datagram generation (step S012). In order to determine whether the datagram generation information extracted in step S011 is a target for datagram generation, for example, the datagram generation information may include valid or invalid information. In this case, datagram generation unit 153 may determine that the datagram generation information is a target for generation if valid information is included.

[0136] Alternatively, in an EtherCAT State Machine (ESM), the datagram generation information may include a state in which the datagram generated by the datagram generation information should be transmitted. In this case, the datagram generation unit 153 determines that the datagram is to be generated if the state matches a state specified by the control device 120. Alternatively, the datagram generation information may include a transmission period. In this case, the datagram generation unit 153 determines that the datagram is to be generated if the time elapsed since the previous transmission time matches the transmission period or has passed the transmission period.

[0137] In this configuration, for example, a means for storing the previous transmission time may be provided. The previous transmission time may be stored in the datagram generation information, or the datagram generation unit 153 may be provided with a storage means for storing the previous transmission time. Alternatively, the next scheduled transmission time may be stored, and the datagram generation unit 153 may determine that a datagram is to be generated when that time arrives. Furthermore, the transmission timing may be defined as a predetermined transmission pattern rather than a fixed transmission cycle. For example, in a cycle of 1 millisecond, transmission may be performed every 200 microseconds, 300 microseconds, and 500 microseconds, and the datagram generation unit 153 may determine that a datagram is to be generated when the elapsed time since the previous transmission time matches the transmission pattern or when the transmission cycle has elapsed.

[0138] The criteria for determining whether a datagram is to be generated may be any one or more of the criteria listed above. In the case of multiple criteria, the criteria may be a match of any one of the conditions (logical OR), a match of all of the conditions (logical AND), or a match of a condition defined by an arbitrary logical expression. An example of an arbitrary logical expression is a determination that a datagram is to be generated if the datagram generation information includes information indicating that the datagram is valid, and the state matches, or the transmission timing matches a predetermined condition. In step S012, if the datagram generation unit 153 determines that the datagram generation information is to be generated (Y in step S012), it prepares data based on the datagram generation information (step S013). At this time, the datagram generation unit 153 may include a command in the datagram generation information and control the data preparation process based on the nature of the command.

[0139] For example, if the datagram to be generated is a write command, it becomes a command (write, write direction) from the control device 120 to the control target device 121. Therefore, the datagram generation unit 153 extracts data equivalent to the command value from the data storage unit 151. At this time, for example, the datagram generation information includes information indicating the position and size of the target data in the data storage unit 151, and the datagram generation unit 153 refers to this information. In other words, the datagram generation unit 153 uses this position and size to extract the necessary data from the data storage unit 151.

[0140] Regarding the data storage location, the storage location may be included in the datagram generation information, or if the datagram generation information is ordered, the storage location may be calculated by adding up the sizes of the datagram generation information that precedes the extracted datagram generation information. If the storage area of ​​the data storage unit 151 is divided into write commands and read commands, the storage location may be calculated by adding up the sizes of the datagram generation information for only the write commands. In this case, whether special commands such as the ARMW (Auto Increment Read Multiple Write) command or the FRMW (Configured Read Multiple Write) command are included in the write commands may be statically defined in advance by a system operator or the like.

[0141] On the other hand, if the datagram to be generated is a read command, the communication (read, read direction) is one in which the control device 120 acquires information from the controlled device 121. Therefore, the datagram generation unit 153 does not extract data from the data storage unit 151, but generates a datagram whose contents are empty or zero and whose data size is the read size. This is because EtherCAT requires a data area equivalent to the read size even for a read command. Note that if the size is characteristically constant within the control system 123, size information does not need to be included in the datagram generation information.

[0142] Furthermore, in the case of a special command such as an ARMW command or an FRMW command that reads only a specified control target device 121 and writes to other control target devices 121, the datagram generation unit 153 may extract data from the data storage unit 152, or may generate a datagram whose contents are empty or zero and whose data size is the read size, as in the case of a read command. In this case, switching may be performed based on address information included in the datagram generation information.

[0143] For example, if the command is ARMW and the auto-increment address is 0, it indicates the control target device 121 adjacent to the control device 120. In such a case, the information in the transmitted datagram is immediately overwritten by the read process for the adjacent control target device 121, so the process of extracting data from the data storage unit 151 in the control device 120 becomes meaningless. Therefore, if the command is ARMW and the auto-increment address is 0, it is an example that data is not extracted from the data storage unit 151.

[0144] Next, the datagram generation unit 153 generates a datagram from the datagram generation information and the prepared data (step S014). To generate the datagram 175 shown in FIG. 4, the datagram generation information includes at least a command 179, an address 181, and a size 182. The command 179 indicates the access content to the logical address. The index 180, the IRQ 186, and the WKC 178 may be included in the datagram generation information when values ​​need to be specified. If it is not necessary to specify the values ​​of the index 180, the IRQ 186, and the WKC 178, default values ​​(e.g., 0) may be set. The MORE 185 may be included in the datagram generation information when it is desired to explicitly indicate whether the datagram is the final datagram.

[0145] In this way, the datagram generation unit 153 generates a datagram by combining the header information extracted from the datagram generation information, the data prepared in step S013, and the WKC 178. Then, the datagram generation unit 153 transfers the generated datagram to the corresponding communication frame generation unit 154 based on the datagram information (step S015). Here, if a plurality of communication frame generation units 154 are provided, for example, when content to be notified to all control target devices 121 or information to be acquired from all control target devices 121 is to be transferred to all communication frame generation units 154 using a broadcast command (BRD, BWR, BRW command).

[0146] Alternatively, the datagram may be transferred not to all communication frame generators 154 but to multiple communication frame generators 154. In this case, in order to individually specify multiple communication frame generators 154, the datagram generation information may include information in a bitmap format indicating the communication frame generators 154 to which the datagram is to be transferred. Each bit indicates an individual communication frame generator 154, and the value may be represented by a boolean value or 0 or 1. When the boolean value is true or 1, the datagram may be transferred to the corresponding communication frame generator 154.

[0147] When transferring datagrams to multiple communication frame generators 154, the datagram generators 153 may transmit them simultaneously or sequentially. In terms of operation of the control system 123, it is desirable for the datagram generators 153 to transmit simultaneously in order to reduce the overall processing delay.

[0148] After transferring the datagram to communication frame generator 154 in step S015, or if it is determined in step S012 that the datagram is not the datagram generation information to be generated (N in step S012), datagram generator 153 determines whether all necessary datagram generation information has been processed (step S016). At this time, datagram generator 153 may determine whether all datagram generation information in datagram generation information storage 152 has been processed, or may determine that all necessary datagram generation information has been processed if the total data size of each piece of datagram generation information exceeds a predetermined value. An example of the predetermined value used to compare the total data size is the maximum size of a communication frame. The data size of each piece of datagram generation information may be calculated including the size of the header and tail information in the communication protocol.

[0149] Alternatively, by including MORE 185 in the datagram generation information, datagram generation unit 153 may determine that the datagram is the last datagram when MORE 185 is 0 (i.e., there are no subsequent datagrams), and may determine that all of the necessary datagram generation information has been processed. Alternatively, datagram generation unit 153 may make this determination based on information on other headers included in the datagram generation information. For example, if command 179 in the datagram generation information is a predetermined command, it may be determined that the datagram generation information is the last datagram generation information, or index 180, address 181, and IRQ 186 may be included in the datagram generation information, and if each of them is a predetermined value, it may be determined that the datagram generation information is the last datagram generation information.

[0150] Furthermore, at this time, datagram generation unit 153 may make the determination based on a combination of multiple parameters. For example, if command 179 and address 181 simultaneously have predetermined values, it may be determined that the data is the last datagram generation information. Furthermore, instead of relying on parameters, if the value of data extracted from data storage unit 152 has a predetermined value, it may be determined that the data is the last datagram generation information. For example, it may be determined whether the data is the last datagram generation information based on a combination of the parameters constituting header 176 and the value of the data extracted from data storage unit 151.

[0151] If it is determined in step S016 that all of the necessary datagram generation information has been processed (Y in step S016), the process proceeds to step S017. On the other hand, if it is not determined in step S016 that all of the necessary datagram generation information has been processed (N in step S016), the process returns to step S011.

[0152] In step S017, the communication frame generation unit 154 generates a communication frame by combining the datagrams transferred from the datagram generation unit 153 and adding header and tail information in accordance with the communication protocol of the control network 122. In the case of EtherCAT, as shown in Fig. 4, an Ethernet header 171 and an FCS 173 are combined with a group of datagrams. The order in which the datagrams are linked is exemplified by the order in which they are transferred from the datagram generation unit 153.

[0153] Alternatively, the communication frame generation unit 154 may rearrange the datagrams based on their constituent contents. For example, the datagrams may be rearranged in ascending or descending order according to their size. Alternatively, a datagram storing a predetermined command may be placed at the beginning of the communication frame. For example, a read command (LRD command) for a logical address may be placed and aggregated at the beginning of the communication frame.

[0154] 8, the rearrangement may be reflected in the order in which the datagram generation information sent from datagram generation information planning unit 111 is registered in datagram generation information storage unit 152, or in the order in which the datagram generation information is stored in datagram generation information storage unit 152 after registration. Alternatively, the rearrangement may be reflected in the order in which datagram generation unit 153 accesses the datagram generation information stored in datagram generation information storage unit 152 in step S011.

[0155] When generating a communication frame, the communication frame generation unit 154 may set MORE 185 of the last datagram to 0 (indicating that there are no subsequent datagrams), and may set MORE 185 of the other datagrams to 1 (indicating that there are subsequent datagrams). Alternatively, in step S014, the datagram generation unit 153 may determine whether the datagram being generated is the last, and set MORE 185 to 0 if it determines that it is the last, or set MORE 185 to 1 if it determines that it is not the last. The criteria used by the datagram generation unit 153 are the same as those used in step S016. Alternatively, the value of MORE 185 may be included in the datagram generation information and reflected when generating the datagrams in step S014.

[0156] Next, the communication frame generation unit 154 determines whether it is time to transmit the generated communication frame (step S018). At this time, the communication frame generation unit 154 may determine that it is time to transmit immediately after step S017 ends, without particularly determining the transmission timing. Alternatively, if the transmission timing or communication cycle is specified in the control system configuration information stored in the control system configuration information storage unit 162 or the control system information stored in the control system information storage unit 110, the communication frame generation unit 154 may determine the transmission timing based on that information. Alternatively, the communication frame generation unit 154 may determine the transmission timing based on the transmission cycle defined in the datagram generation information.

[0157] If it is determined in step S018 that it is time to transmit the communication frame, the communication frame generation unit 154 transfers the communication frame to the transmission unit 155 and transmits it via the transmission unit 155 (step S019). Next, the control device 120 executes a predetermined completion process (step S020). An example of the completion process is to notify the calculation unit 150 that transmission has been completed.

[0158] Alternatively, as a completion process, if an abnormality occurs in steps S011 to S019, the calculation unit 150 may be notified of the occurrence of the abnormality. For example, if the total data access size exceeds a predetermined value, this may be notified. Alternatively, if a communication abnormality occurs when accessing an area of ​​the data storage unit 151, if an access abnormality occurs in the memory 104 or non-volatile storage medium 105 that implements the data storage unit 151, or if a soft error (temporary semiconductor failure) occurs in the communication control IC 102, memory 104, or non-volatile storage medium 105 that constitutes the calculation means or storage means of the functional unit, this may be notified. Examples of the detection of such abnormalities include using a device or functional unit equipped with an error correction code (ECC) function, or storing data together with an error correction code such as a parity check when storing data in the data storage unit 152, memory 104, or non-volatile storage medium 105.

[0159] These abnormality notifications allow system operators and others to become aware of the abnormality and take necessary measures. As a result, the execution and operation of the control system 123 can be stabilized, normalized, and restored. For example, if the data access size exceeds a predetermined value, the cause may be that the datagram generation information planning unit 111 in the control system configuration device 124 erroneously planned datagram generation information. By investigating such causes, if there is an incorrect setting or malfunction in the datagram generation information planning unit 111, the control system configuration information construction unit 112, the logical address assignment planning unit 113, or one or more of the functional units in the control device 120, the relevant functional units can be improved in reliability by improving the settings or malfunctions.

[0160] Alternatively, if the cause is an incorrect setting made by a system operator or the like when using these functional units, the setting can be reviewed and a function to prevent the incorrect setting can be added to the functional units of the control system configuration device 124. Specifically, examples of such a function include improving the user interface when operating the functional units and adding a function to check assumed conditions such as upper size limits.

[0161] The notification accompanying the completion process in step S020 may be implemented as an interrupt from the communication control IC 102 to the CPU 101. Alternatively, as the completion process, the communication frame generation unit 154 or the transmission unit 155 may store the transmission time of the communication frame. By storing the transmission time, it is possible to measure the communication time when the same datagram is received via the control network 122, and it becomes possible to evaluate and visualize communication performance and determine anomalies by comparing with a timeout value. The transmission time may be stored for each datagram when the datagram is transferred in step 015, rather than for each communication frame.

[0162] When extracting the datagram generation information in step S011, a mode based on the ESM may be set, and in step S012, it may be determined whether the datagram is to be generated according to the mode. In this case, in addition to the information on the currently set mode, the mode to be transmitted may be defined in the datagram generation information. Completion of the state change based on the ESM may be confirmed in step S020. A datagram requesting a state change based on the ESM may be defined as datagram generation information.

[0163] After executing step S020, the control device 120 determines whether a termination condition is met (step S021). Examples of the termination condition include reaching a predetermined time, elapse of a predetermined period of time, or execution of a predetermined number of control operations. Alternatively, examples of the termination condition include reaching a predetermined control performance. Alternatively, the termination may be explicitly instructed by a system operator or the like.

[0164] If the control device 120 determines in step S021 that the termination condition is satisfied (Y in step S021), it terminates the procedure shown in Fig. 10. If the control device 120 determines in step S021 that the termination condition is not satisfied (N in step S021), it returns to step S010. The processes from step S017 to step S020 are executed by each of the multiple PHYs 103, communication frame generation units 154, or transmission units 155, and therefore may be executed in parallel.

[0165] <Reception Processing Procedure of Control Device 120> Figure 11 is a flowchart showing an example of the execution procedure of the reception processing in the control device 120 shown in Figure 3. First, the reception unit 158 ​​waits to receive a communication frame (step S030). When the reception unit 158 ​​receives a communication frame, it transfers the communication frame to the communication frame disassembly unit 157, and the communication frame disassembly unit 157 disassembles the received communication frame into datagrams (step S031). If the received communication frame is not an EtherCAT frame, the reception unit 158 ​​may discard the frame and terminate, or may notify the calculation unit 150 or the like that a non-EtherCAT frame has been received or the received communication frame.

[0166] After disassembling the communication frame into datagrams, communication frame disassembly unit 157 transfers each datagram to datagram analysis unit 156 (step S032). When datagram analysis unit 156 receives a datagram, it searches datagram generation information storage unit 152 to determine whether there is datagram generation information corresponding to that datagram (step S033).

[0167] The search for and determination of the presence of datagram generation information is performed based on the contents of the received datagram. That is, datagram analysis unit 156 determines that datagram generation information is present when, for example, the header information and data length on the received datagram match the header information included in the datagram generation information. When determining the header information, it is possible to determine whether only some of the parameters, such as command 179, address 181, and size 182, match, rather than determining whether all parameters match.

[0168] If datagram generation information storage unit 152 stores the corresponding datagram generation information (Y in step S033), datagram analysis unit 156 extracts the datagram generation information (step S034). Datagram analysis unit 156 then shares the extracted datagram generation information and the received datagram with abnormality determination unit 163, and abnormality determination unit 163 determines whether there is an abnormality in the received datagram (step S035). The operation of abnormality determination unit 163 will be described later.

[0169] If there is no abnormality in the received datagram in step S035 (N in step S035), the datagram analysis unit 156 determines whether the received datagram is a read-type command (step S036). If it is a read-type command, the received data needs to be reflected in the data storage unit 151. Therefore, if the received datagram is a read-type command (Y in step S036), the datagram analysis unit 156 determines the storage location of the received data in the data storage unit 151 based on the datagram generation information it has found (step S037).

[0170] Regarding the storage location of the received data, the storage location may be included in the datagram generation information, or if the datagram generation information is ordered, the storage location may be calculated by adding up the size of the datagram generation information that precedes the extracted datagram generation information.If the storage area of ​​the data storage unit 151 is divided into write commands and read commands, the storage location may be calculated by adding up the size of the datagram generation information for only the read commands.Whether special commands such as ARMW commands and FRMW commands are included in the read commands may be decided by a system operator or may be statically defined in advance.

[0171] After determining the data storage location, the datagram analysis unit 156 extracts the received data from the datagram and updates the corresponding area in the data storage unit 151 (step S038). After completing step S038, or if there is an abnormality in the received datagram in step S035 (Y in step S035), or if the received datagram is not a read command (N in step S036), the datagram analysis unit 156 executes a completion process for the datagram processing (step S039). Examples of the completion process for the datagram processing include counting up the number of times a datagram has been received or the size of the received data.

[0172] After executing step S039, or if it is determined in step S033 that there is no datagram generation information corresponding to the received datagram (N in step S033), the control device 120 determines whether all datagrams have been processed (step S040). In this case, for example, the determination is made based on whether all datagrams included in the received communication frame have been processed. Alternatively, it may be determined that all datagrams have been processed when a datagram that matches the conditions of a predetermined header parameter value or WKC value is received.

[0173] If the control device 120 determines in step S040 that all datagrams have not been processed (N in step S040), it returns to step S032. On the other hand, if it determines in step S040 that all datagrams have been processed (Y in step S040), the datagram analysis unit 156 and the communication frame disassembly unit 157 share the received datagram group, the received communication frame, and the extracted datagram generation information with the abnormality determination unit 163, and the abnormality determination unit 163 determines whether there is an abnormality in the received communication frame (step S041).

[0174] If the abnormality determination unit 163 determines in step S041 that the communication frame has an abnormality (Y in step S041), the control device 120 executes a response process (step S042). The response process to an abnormality will be described later. After executing step S042, or if the control device 120 determines in step S041 that the communication frame has no abnormality (N in step S041), the control device 120 executes a completion process for the communication frame (step S043), and ends the procedure shown in FIG. 11 .

[0175] An example of the completion process for a communication frame is counting up the number of times the communication frame has been received or the size of the received data. Alternatively, an example of the completion process for a communication frame is notifying the calculation unit 150 that the reception process has been completed. In this case, if a plurality of communication units 159 are provided, the completion may be notified for each reception process for a communication frame received by each communication unit 159.

[0176] Alternatively, the completion may be notified when a predetermined time has elapsed, when a predetermined number of communication frames have been processed, when a predetermined received data size (the received size of a communication frame or the total received size for a predetermined area shown in FIG. 4) has been processed, or when datagrams of a predetermined number of control target devices 121 have been processed. These statistical values ​​may be determined for each communication unit 159, or may be determined as a total value for all communication units 159 or for multiple communication units 159. When notifying the calculation unit 150 of the completion, the datagram analysis unit 156 may, for example, be provided with means for presenting the cause of the notification.

[0177] Alternatively, as a completion process of a communication frame, for example, the data storage unit 151 or the calculation unit 150 may be notified that updating of a necessary area in the data storage unit 151 has been completed. For example, the notification accompanying such a completion process may be implemented as an interrupt from the communication control IC 102 to the CPU 101.

[0178] Alternatively, as a completion process, the communication frame disassembly unit 157 or the receiving unit 158 ​​may store the reception time of the communication frame. Storing the reception time makes it possible to measure the communication time when the communication frame is received, thereby enabling evaluation and visualization of communication performance and abnormality detection by comparison with a timeout value. Storing the reception time may be performed immediately after receiving the communication frame in step S030 (Y in step S030). When multiple communication units 159 are provided, for example, the reception time may be measured for each communication unit 159. In this way, the communication time for each communication unit 159 can be measured, and it is possible to confirm and verify whether the connection configuration of the control target device 121 for each communication unit 159 is appropriate.

[0179] <Abnormality Determination and Response Procedure> Figure 12 is a flowchart showing an example of the abnormality determination process by the abnormality determination unit 163 and the execution procedure of the abnormality response process by the retransmission unit 164 in Figure 3. The procedure shown in Figure 12 corresponds to steps S035, S041, and S042 in Figure 11. In Figure 12, first, the abnormality determination unit 163 waits for the timing to determine an abnormality (step S050). The timing to determine an abnormality may be the timing when the datagram analysis unit 156 shares a received datagram or datagram generation information with the abnormality determination unit 163, or the timing when the communication frame disassembly unit 157 shares a received communication frame with the abnormality determination unit 163.

[0180] Alternatively, the abnormality determination timing may be the timing when a predetermined period has elapsed from any of the following timings (A) to (C). The abnormality determination timing corresponds to a timeout value for detecting loss of a communication frame on the control network 122. (A) The timing when the datagram generation unit 153 transfers the generated datagram (for example, the first datagram in the communication frame) to the communication frame generation unit 154. (B) The timing when the communication frame generation unit 154 transfers the generated communication frame to the transmission unit 155. (C) The timing when the transmission unit 155 starts transmitting the communication frame.

[0181] When it is time to make an abnormality determination in step S050 (Y in step S050), the abnormality determination unit 163 performs an abnormality determination for each received datagram (step S051) and an abnormality determination for each received communication frame (step S052). Steps S051 and S052 may be performed in parallel as shown in FIG. 12, or may be performed in order by performing one step first. Alternatively, the abnormality determination unit 163 may perform only one step if there is no relevant information.

[0182] For example, if a communication frame is made up of multiple datagrams and only the first datagram is transferred from the datagram analysis unit 156 to the abnormality determination unit 163, the abnormality determination unit 163 cannot determine an abnormality for the communication frame and therefore executes only step S051. On the other hand, if the timing for abnormality determination comes due to a timeout, for example, the abnormality determination unit 163 cannot determine an abnormality for each datagram and therefore executes only step S052. Furthermore, when determining an abnormality in the cyclic redundancy check (CRC) in the FCS 173, the FCS 173 is assigned to each communication frame and an abnormality determination is made for the communication frame, so the abnormality determination unit 163 executes only step S051.

[0183] When determining whether a datagram is abnormal in step S051, an expected value of the WKC 178 at the time of receiving the datagram may be set in the datagram generation information. In this case, the abnormality determination unit 163 may compare the value of the WKC 178 stored in the received datagram with the expected value and determine an abnormality if they do not match. Alternatively, the abnormality determination unit 163 may determine an abnormality if the format of the received datagram does not match the format defined by the communication protocol.

[0184] When determining whether or not there is an abnormality in the communication frame in step S052, a timeout value may be set for the communication of the communication frame. In this case, the abnormality determination unit 163 may determine that there is an abnormality if the time from the time of transferring the datagram in step S015 in Fig. 10 or transferring or transmitting the communication frame in step S019 to the time of receiving the communication frame in step S030 in Fig. 11 or receiving the datagram in step S032 exceeds the timeout value.

[0185] Alternatively, the abnormality determination unit 163 may determine an abnormality when an abnormality is detected in a cyclic redundancy check (CRC) using the FCS 173 in the received communication frame. The abnormality determination using the CRC may be performed immediately after receiving the communication frame in step S030 in FIG. 11 (Y in step S030). That is, the timing of receiving the communication frame in step S050 in FIG. 12 is set as the timing of the abnormality determination. Alternatively, the abnormality determination unit 163 may determine an abnormality when the format of the received communication frame is inconsistent with the format defined by the communication protocol.

[0186] Alternatively, the abnormality determination unit 163 may detect abnormalities such as a communication abnormality when accessing an area of ​​the data storage unit 151, an access abnormality in the memory 104 or nonvolatile storage medium 105 that implements the data storage unit 151, or a soft error in the communication control IC 102, memory 104, or nonvolatile storage medium 105 that constitute the computing means or storage means of the functional unit. Furthermore, the abnormality determination unit 163 may detect an abnormality that occurs in step S038 in Fig. 11. Examples of methods for detecting such abnormalities include using a device or functional unit equipped with an error correction code (ECC) function, or storing data together with an error correction code such as a parity check when storing data in the data storage unit 151, memory 104, or nonvolatile storage medium 105.

[0187] After determining an abnormality in steps S051 and S052, the abnormality determination unit 163 checks whether an abnormality has occurred (step S053). If an abnormality has occurred (Y in step S053), the abnormality determination unit 163 determines whether retransmission is necessary (step S054) and issues an abnormality notification (step S056). Steps S054 and S056 may be executed in parallel as shown in FIG. 12, or may be executed sequentially by executing one step first. Alternatively, only one of the steps may be executed.

[0188] Regarding the determination of whether retransmission is necessary in step S054, a system operator or the like may set in advance that retransmission is to be performed when an abnormality occurs, and the abnormality determination unit 163 may determine to retransmit based on that setting. Alternatively, by setting an upper limit on the number of retransmissions within a predetermined period, the abnormality determination unit 163 may determine not to retransmit if the number of retransmissions has reached the upper limit, even if it is determined in step S053 that an abnormality has occurred.

[0189] Alternatively, whether or not a datagram is to be retransmitted may be set for each datagram in the datagram generation information stored in datagram generation information storage unit 152, so that abnormality determination unit 163 may determine to retransmit a datagram in the event that the datagram in which an abnormality has occurred corresponds to a datagram in the event that the datagram is to be retransmitted. Similarly, abnormality determination unit 163 may determine not to retransmit a datagram in the event that the datagram in which an abnormality has occurred does not correspond to a datagram in the event that the datagram is to be retransmitted.

[0190] Alternatively, if no abnormality occurs during the reception process and an abnormality occurs during access to the data storage unit 151, the memory 104, or the nonvolatile storage medium 105, the abnormality determination unit 163 may determine not to retransmit. In such a case, the abnormality determination unit 163 may, for example, cause the datagram analysis unit 156 or the like to access the data storage unit 151, the memory 104, or the nonvolatile storage medium 105 again. If the re-access fails or if the re-access fails a predetermined number of times, the abnormality determination unit 163 may, for example, notify the calculation unit 150 or an external unit.

[0191] If it is determined in step S054 that retransmission is to be performed (Y in step S054), the abnormality determination unit 163 transfers one or more pieces of information, such as the datagram, communication frame, and datagram generation information to be retransmitted, to the retransmission unit 164, and the retransmission unit 164 performs retransmission using the information (step S055). When retransmitting, retransmission may be performed on a communication frame basis, or on a datagram basis that is determined to be abnormal due to a WKC mismatch or the like.

[0192] For retransmission, the retransmitting unit 164 may construct a datagram or a communication frame based on the information transferred from the abnormality determination unit 163 and transfer it to the transmitting unit 155. Alternatively, the datagram transferred from the datagram generation unit 153 to the communication frame generation unit 154 or the communication frame transferred from the communication frame generation unit 154 to the transmitting unit 155 may also be transferred to the retransmitting unit 164. In this case, based on the information transferred from the abnormality determination unit 163 to the retransmitting unit 164, the retransmitting unit 164 may identify a datagram or communication frame that needs to be retransmitted and transfer it to the transmitting unit 155.

[0193] At this time, the retransmitting unit 164 may change parameters on the datagram or communication frame to be transferred to the transmitting unit 155 so that it is clear that the datagram or communication frame is a retransmission. Examples of such parameters include one or more of the destination MAC address, source MAC address, index 180, and data area 177 on the Ethernet header 171. The change may also be made to a portion of the selected parameter (for example, a portion of the source MAC address or a predetermined bit of index 180). In addition, the retransmitting unit 164 may change parameters such as MORE 185 in accordance with the change in the configuration of the communication frame.

[0194] In step S056, if the abnormality determination unit 163 determines that an abnormality has occurred, it notifies the calculation unit 150 of information about the abnormality. Examples of the information about the abnormality include information about the relevant datagram or communication frame, information about datagram generation information, the cause of the abnormality, the timing of the abnormality, and the time of occurrence. When notifying the calculation unit 150 of the occurrence of an abnormality, if the communication unit 159, communication frame, datagram, etc. in which the abnormality has occurred can be identified, the abnormality determination unit 163 may, for example, notify the calculation unit 150 of the occurrence of an abnormality by also notifying the calculation unit 150 of one or more of the identification information.

[0195] Examples of the means by which the abnormality determination unit 163 notifies the calculation unit 150 include an interrupt signal and register information accessible by the CPU 101. Alternatively, the abnormality determination unit 163 may notify or present the abnormality through external presentation means such as a display, LED, or speaker that the control device 120 may have. Alternatively, in step S056, the abnormality determination unit 163 may count up the number of abnormality occurrences.

[0196] <System Configuration Change Procedure> Fig. 13 is a flowchart showing an example of the execution procedure when the system configuration is changed by the control target device selection unit 160, datagram generation information change unit 161, and control system configuration information storage unit 162 in Fig. 3. Figs. 14A, 14B, 14C, and 14D are diagrams showing specific examples of the execution procedure shown in Fig. 13. Fig. 14 is based on the example shown in Fig. 9. A system configuration change refers to the addition or removal of a control target device (device) 121, and refers to a change in device information.

[0197] 13 , first, the control device 120 waits for the timing to change the system configuration (step S060). An example of this timing is when an operator or the like explicitly changes the system configuration. Alternatively, this timing may be after the control device 120 has performed a predetermined number of communications, or after a predetermined communication size (which may be the communication size for the entire control system 123, or the communication size for a predetermined control target device 121). Alternatively, this timing may be after a predetermined operating time has elapsed, when the control system 123 has reached a predetermined performance level, or when a predetermined processing operation has been completed.

[0198] Alternatively, the timing may be based on a predetermined cycle. In this case, the length of the cycle is not particularly limited, and may be, for example, a relatively short cycle of 10 milliseconds every 5 seconds, or a relatively long cycle of one hour from 1:00 PM to 2:00 PM on Mondays in a week. Here, the period required for the change is also defined (10 milliseconds, 1 hour), but the system configuration does not need to be restored to its original state until a predetermined condition is met, or the system configuration may be maintained as is.

[0199] Alternatively, the control device 120 or a predetermined control target device 121 may start changing the system configuration upon detecting a predetermined event in the control system 123. For example, assuming a configuration in which the control target device 121 is equipped with a predetermined sensor and the control device 120 collects sensor values, the control device 120 determines that it is time to change the system configuration when the sensor value satisfies a predetermined criterion.

[0200] When changing the system by specifying a time, the target control device 121 may automatically connect to or disconnect from the control system 123. In the case of connection, for example, the control target device 121 may be automatically powered on while physically connected to the control system 123. In the case of disconnection, for example, the control target device 121 may be automatically powered off while physically connected to the control target device 121. For example, the time at which these automatic processes are executed may be a time synchronized by the DC protocol.

[0201] When it is time to change the system configuration in step S060 (Y in step S060), the control target device selection unit 160 selects the control target device 121 to be changed (step S061). At this time, there may be one or more of the following cases: adding the control target device 121 to the control system 123; removing the control target device 121 from the control system 123; or replacing the control target device 121.

[0202] 14A , a case is assumed in which control target devices 121B, C, and E are removed and a new control target device 121G is added. In this case, an example of operation is that an operator selects the target control target device 121 via an HMI provided in the control system management device 125, and the control system management device 125 transmits the selected information to the control device 120.

[0203] In addition, when the system configuration is changed automatically when a predetermined condition is satisfied in step S060, the control-target device 121 to be changed based on the condition may be defined in advance. That is, the correspondence between the change factor of the system configuration and the control-target device 121 to be changed may be defined in advance. In this way, the control device 120 can automatically select the target control-target device 121 based on the change factor. For example, when the system configuration is changed when a predetermined event is sensed in the control system 123, the control-target device 121 may be defined in advance so that it is determined based on the type of sensor and the sensor value.

[0204] Next, the datagram generation information change unit 161 acquires the control system configuration information held by the control system configuration information storage unit 162 (step S062). For example, the control system configuration information shown in FIG. 14D is illustrated. In FIG. 14D, the control target device 121G is added to the control system configuration information shown in FIG. 9D. When changing the control system configuration information held in the control system configuration information storage unit 162, the control system configuration information held in the control system configuration information storage unit 162 may be changed by executing the procedure shown in FIG. 8 at any time.

[0205] Then, datagram generation information change unit 161 executes the response process that was performed before changing the datagram generation information (step S063). Examples of the response process include stopping communication or stopping the control operation of control system 123. Alternatively, examples of the response process include invalidating the abnormality determination based on the comparison with the expected value of WKC 178. As a result, abnormality determination unit 163 does not compare the value of WKC 178 at the time of reception with the expected value, and therefore, retransmission shown in steps S054 and S055 in FIG. 12 may not be performed.

[0206] Alternatively, when removing the control target device 121, the control device 120 may stop communication with the control target device 121 selected in step S061. Examples of response processing include changing the ESM, changing the communication cycle, and stopping time synchronization using the DC protocol. Note that the response processing in step S063 does not necessarily have to be performed. Furthermore, in step S060, in conjunction with automatically changing the system configuration, the response processing in step S063 may be performed for a predetermined period at a predetermined cycle.

[0207] Next, the datagram generation information modification unit 161 modifies the datagram generation information (communication control information) held by the datagram generation information storage unit 152 based on the acquired control system configuration information, i.e., the correspondence between the control target device 121 and the datagram (step S064). Examples of the information to be modified include some or more of the parameters of the header 176 and expected values ​​for the value of the received WKC 178.

[0208] As a specific example of changing the expected value of WKC178, first, the datagram generation information modification unit 161 determines that the control target devices 121B and C to be removed are included in datagram [1] based on the control system configuration information shown in Fig. 14D, i.e., the information held in the control system configuration information storage unit 162. Therefore, in order to remove these two control target devices 121 from the control system 123, the datagram generation information modification unit 161 changes the expected value of WKC178 for datagram [1] from 3 to 1, which is obtained by subtracting 2, as shown in Fig. 14C.

[0209] Similarly, the datagram generation information modification unit 161 finds out, based on the control system configuration information shown in Fig. 14D, that the control target device 121E to be removed is included in datagram [2]. Therefore, in order to remove this control target device 121E from the control system 123, the datagram generation information modification unit 161 changes the expected value of WKC 178 for datagram [2] from 2 to 1, which is obtained by subtracting 1, as shown in Fig. 14C.

[0210] Furthermore, the datagram generation information modification unit 161 knows, based on the control system configuration information shown in Fig. 14D, that the control target device 121G to be added will be newly included in datagram [3]. Therefore, in order to add this control target device 121G to the control system 123, the datagram generation information modification unit 161 changes the expected value of WKC 178 for datagram [3] from 1 to 2, which is the sum of 1, as shown in Fig. 14C.

[0211] In addition, the datagram generation information modification unit 161 may change the size of the data area 177 (size 182 as a parameter). As a specific example, in Fig. 14A, the control target devices 121B and 121C are removed from the control system 123. Therefore, as shown in Fig. 14C, the datagram generation information modification unit 161 changes the size of the data area 177 for datagram [1], that is, size 182 in Fig. 4, to 400 bytes, which is obtained by subtracting 600 bytes, which is the total size of the control target devices 121B and 121C, from 1000 bytes.

[0212] At this time, the datagram generation information modification unit 161 can obtain from the control system configuration information shown in Fig. 14D that datagram [1] includes communications addressed to the control target devices 121B and 121C. Furthermore, the datagram generation information modification unit 161 can obtain from the control system configuration information shown in Fig. 14A that the total size of the data areas 177 of the control target devices 121B and 121C is 600 bytes.

[0213] Similarly, based on the control system configuration information shown in Fig. 14D, datagram generation information modification unit 161 finds that control target device 121E to be removed is included in datagram [2]. Therefore, in order to remove this control target device 121E from control system 123, datagram generation information modification unit 161 changes the size of data field 177 for datagram [2] from 1000 bytes to 500 bytes, which is the size of control target device 121E (500 bytes), as shown in Fig. 14C.

[0214] Furthermore, based on the control system configuration information shown in Fig. 14D, the datagram generation information modification unit 161 knows that the control target device 121G to be added will be newly included in datagram [3]. Therefore, in order to add this control target device 121G to the control system 123, the datagram generation information modification unit 161 changes the size of data area 177 for datagram [3] from 200 bytes to 300 bytes, which is the size of the control target device 121G, plus 100 bytes, as shown in Fig. 14C.

[0215] Note that, when changing the size 182 of the data area 177, logical address space allocation information by the logical address allocation planning unit 113 is required when the control system configuration information construction unit 112 constructs the control system configuration information in step S004 shown in Fig. 8. On the other hand, the size 182 of the data area 177 does not need to be changed. However, changing the size 182 of the data area 177 can improve the utilization efficiency of the communication band of the control network 122.

[0216] Furthermore, when the datagram configuration units are subdivided within the control target device 121 rather than on a control target device 121 basis, an example is changing multiple pieces of datagram configuration information related to the control target device 121 selected in step S061 in Fig. 13. For example, when the area of ​​the control target device 121D is divided and included in datagram [1] and datagram [2] respectively in Fig. 14D, an example is changing the datagram configuration information (for example, the expected value of WKC178) of datagram [1] and datagram [2] in Fig. 14C.

[0217] After changing the datagram generation information in this way (step S064), the system configuration of the control system 123 is changed automatically or manually (step S065). For example, when removing the control target device 121, the power supply of the control target device 121 selected in step S061 is automatically or manually shut off. As an example, when the control system 123 is a semiconductor manufacturing device, the power supply of the target control target device 121 is shut off when performing maintenance such as cleaning reaction products deposited in the chamber. In such a case, the control target device 121 physically exists in the control system 123, but because the power supply is shut off, it is disabled in the control system 123. Such a case is also included in the system configuration change that is subject to the change.

[0218] 14A , the control device 120 or a control system management device 125 (not shown) may shut down the power supply to the control target devices 121B, C, and E by sending a power-off command via the control network 122, and logically remove the devices from the control system 123. Alternatively, an operator, worker, or the like may manually operate the control target devices 121 to shut down the power supply. In this case, the control target devices 121B, C, and E may be physically carried and removed from the control system 123.

[0219] Alternatively, the target control target device 121 may be set so that, when a datagram is received, the parameters (e.g., WKC 178) used for abnormality determination in the abnormality determination unit 163 are not changed. This setting can be performed, for example, by sending a command to the control target device 121 via the control network 122, by connecting a maintenance PC to the control target device 121 with a USB cable or the like, or by using an operation interface (e.g., DIP switches) provided on the control target device 121.

[0220] For the control target device 121G, an operator or worker may carry the control target device 121G into the control system 123, connect it to a power source and the control network 122, and add the control target device 121G to the control system 123. Alternatively, the power source of the control target device 121G that is installed in the control system 123 in advance may be manually started, or the power source of the control target device 121G may be automatically started via the control network 122 using a Wake-on-LAN function.

[0221] Thereafter, the datagram generation information change unit 161 executes a response process after the system change (step S066). Examples of the response process include restarting communication with the control system 123, restarting communication with the changed control target device 121, validating comparison with the expected value of the WKC 178, changing the ESM, reallocating a logical address, setting the SyncManager, changing the communication cycle, and re-executing time synchronization using the DC protocol.

[0222] Alternatively, the corresponding process may involve checking the connection order of the control target devices 121. As a specific example, the control system configuration information may include information on the connection order of the control target devices 121 (for example, the auto-increment addresses of each control target device 121). The control device 120 may sequentially change the values ​​of the auto-increment addresses, and sequentially access the addresses that hold the identification information of each control target device 121 to check whether the desired connection order is achieved.

[0223] The response process in step S066 may be omitted. Furthermore, in step S060, in conjunction with the automatic change of the system configuration, the response process in step S066 may be executed at a predetermined interval at a predetermined cycle. After executing step S066, the control device 120 terminates the execution procedure shown in Fig. 13. Furthermore, in the control device 120, the transmission procedure shown in Fig. 10, the reception procedure shown in Fig. 11, and the abnormality determination procedure and response procedure shown in Fig. 12 are all executed based on the datagram generation information changed based on the system configuration change procedure shown in Fig. 13.

[0224] 14 has been described focusing on commands for logical addresses, but datagrams that can be changed are not limited to these. Examples include commands for auto-increment addresses (APRD, APWR, APRW), commands for station addresses (FPRD, FPWR, FPRW), broadcast commands (BRD, BWR, BRW), NOP commands, ARMW commands, and FRMW commands.

[0225] For example, assume that the datagram generation information for the control target device 121 selected in step S061 allows access to the target address using a command that accesses an auto-increment address or a station address. In this case, the expected value of WKC178 is set to 0 when the control target device 121 is removed from the control system 123, and set to 1 when the control target device 121 is added to the control system 123. However, in the case of a read / write command, the expected value of WKC178 is set to 1 (when the accessed register is read-only), 2 (when the accessed register is read-only), or 3 (when the accessed register supports both read and write).

[0226] As another example, assume that the datagram generation information for the selected control target device 121 indicates that the target address can be accessed using a broadcast command. In this case, the expected value of WKC 178 is, for example, set to a value obtained by subtracting the number of selected control target devices 121 from the total number of control target devices 121 when removing the control target device 121 from the control system 123, and set to a value obtained by adding the number of control target devices 121 to be added when adding the control target device 121 to the control system 123. However, in the case of a read / write command, the value to be changed for one control target device 121 is either 1 (when the accessed register is read-only), 2 (when the accessed register is read-only), or 3 (when the accessed register supports both read and write).

[0227] As another example, assume that one of the control target devices 121 is implemented to respond with a NOP command that should normally be ignored. In this case, the expected value of WKC 178 is set to a value obtained by subtracting 1 from the expected value when the control target device 121 is removed from the control system 123, and set to a value obtained by adding 1 to the expected value when the control target device 121 is added to the control system 123.

[0228] As yet another example, assume that the datagram generation information for the selected control target device 121 allows access to the target register using the ARMW command or the FRMW command. In this case, the expected value of WKC 178 is set to a value obtained by subtracting the number of selected control target devices 121 when removing the control target device 121 from the control system 123, and set to a value obtained by adding the number of selected control target devices 121 when adding the control target device 121 to the control system 123.

[0229] Furthermore, when changing the datagram generation information in step S064, if the command is for an auto-increment address, the auto-increment address may be changed. For example, when a certain control target device 121 is removed from the control system 123, the control target devices 121 after that control target device 121 are moved up in the connection order. For this reason, for example, the auto-increment addresses of the control target devices 121 after the control target device 121 to be removed are incremented by one.

[0230] Similarly, when a certain control target device 121 is added to the control system 123, the control target devices 121 following that control target device 121 are moved down in the connection order. For this reason, for example, the auto-increment addresses of the control target devices 121 following the added control target device 121 are decremented by one.

[0231] Furthermore, when removing a control target device 121 from the control system 123, if the datagram defined in the datagram generation information is a datagram for only the control target device 121 to be removed, the control device 120 may determine in step S012 shown in Fig. 10 that the datagram is not a datagram to be generated (N in step S012). Furthermore, if the control device 120 includes multiple communication units 159, the control device 120 changes the datagram generation information for the datagram to be sent from the communication unit 159, targeting the communication unit 159 to which the control target device 121 selected in step S061 is connected, in step S064 shown in Fig. 13.

[0232] <Example of reconnection> When a control-target device 121 that has been removed or an added control-target device 121 is restored to its original state (when a removed control-target device 121 is reconnected or an added control-target device 121 is removed), the procedure shown in FIG. 13 is executed again.

[0233] <Allocation of logical addresses of control-target devices 121 to be changed> Furthermore, if the control-target devices 121 to be added to or removed from the control system 123 are known in advance, in step S001 shown in Fig. 8, the logical address allocation planning unit 113 may, for example, allocate the control-target devices 121 to be changed together at the beginning or end of the logical address when allocating logical addresses. In this way, even if a control-target device 121 is removed from the control system 123, the inputs and outputs of the remaining control-target devices 121 are allocated to a continuous space. Therefore, there is no need to divide the datagram or include invalid areas in the datagram.

[0234] Similarly, even when a control target device 121 is added to the control system 123, a continuous space including the input and output of the control target device 121 to be added is allocated, so there is no need to divide the datagram or include invalid areas in the datagram. Therefore, as will be described below, the logical address space can be used efficiently, and the effect of improving the utilization efficiency of the communication band can be obtained.

[0235] Figures 25A, 25B, and 25C are diagrams showing specific examples obtained by modifying Figures 14B, 14C, and 14D, respectively. First, as a comparative example, in the configuration shown in Figure 14A, control target devices 121B, C, and E are removed, while the logical addresses of each control target device 121 are assigned in connection order as shown in Figure 14B. In this case, both before and after the system configuration change, the datagrams for control target devices 121A, B, C, D, and E remain datagram [1] and datagram [2].

[0236] Here, it is assumed that the control target devices 121 to be changed are consolidated at the end of the logical address space as shown in Fig. 25A. Specifically, in Fig. 25A, unlike the case of Fig. 14B, the control target devices 121B, C, and E to be removed are allocated to the end of area 190a, and the input / output of control target device D is allocated contiguous to the input / output of control target device 121A.

[0237] Furthermore, assume that in step S002 shown in Fig. 8, the datagram generation information planning unit 111 plans datagram generation information as shown in Fig. 25B. In Fig. 25B, the input / output of control target devices 121A, D, and B is accessed by datagram [1], and the input / output of control target devices 121C and E is accessed by datagram [2]. Note that datagram [1] may be assigned to access to the input / output of control target devices 121A and D, and datagram [2] may be assigned to access to the input / output of control target devices 121B, C, and E. In either configuration, the upper limit size constraints for communication frames and datagrams are satisfied.

[0238] Based on this configuration, if the control target devices 121B, C, and E are removed as in the comparative example, in Fig. 25B, datagram [1] can remain as is (however, the data size may be changed), and datagram [2] can be invalidated because it is access to the control target device 121 to be removed. In other words, compared to when the datagram configuration shown in Fig. 14 is used, the number of datagrams can be reduced from 3 (datagrams [1], [2], [3]) to 2 (datagrams [1], [3]).

[0239] This reduces overhead such as the Ethernet header 171, header 176, WKC 178, and inter-frame gap. In other words, by consecutively allocating the inputs and outputs of the control target device 121 to be changed to the beginning or end of the logical address space, the utilization efficiency of the communication band can be improved when the system configuration is changed.

[0240] <Application to maximum configuration for temporary operation> Furthermore, the control system 123 may be operated in a temporary system configuration depending on the application. For example, when the control system 123 is started up, not all of the control target devices 121 may be available, and the control system 123 may be configured with only some of the control target devices 121. Alternatively, after the control system 123 is put into operation, there may be cases where it is desired to temporarily add sensors to the control system 123 for monitoring and analysis in order to improve performance or to deal with some malfunction.

[0241] In such a case, the procedure shown in Fig. 8 is executed based on the maximum possible group of controlled target devices 121 for the control system 123. That is, the control system information storage unit 110 holds information on the maximum possible group of controlled target devices 121. Then, the datagram generation information planning unit 111, the logical address assignment planning unit 113, and the control system configuration information construction unit 112 each plan datagram generation information, assign logical addresses, and construct control system configuration information based on the maximum possible group of controlled target devices 121.

[0242] For example, when the control system 123 is started up, some of the control target devices 121 are not connected. In this state, executing the procedure shown in Fig. 13 using a plan based on the group of control target devices 121 with the maximum configuration is equivalent to selecting and removing the control target devices 121 that are not connected when the control system 123 is started up in step S061 shown in Fig. 13. On the other hand, when it is desired to temporarily add sensors for monitoring and analysis after the control system 123 is put into operation, the group will be the group of control target devices 121 with the maximum configuration (when other control target devices 121 are not involved), so the procedures in Figs. 8, 10, 11, 12, and 13 can be applied as is.

[0243] In this way, if planning is done based on the maximum configuration of the group of control target devices 121, the method of the embodiment can be applied even when not all of the control target devices 121 are available at the time of starting up the control system 123, or when monitoring and analysis are desired by temporarily adding sensors to the control system 123 after the control system 123 has been put into operation. In addition, the same effects as those of the method of the embodiment can be obtained.

[0244] <Automatic Recognition of Addition or Removal of Control Target Device 121> The control system 123 may also be configured to automatically recognize when an operator or worker manually adds or removes a control target device 121. Specifically, in step S002 shown in FIG. 8 , the datagram generation information planning unit 111 plans datagram generation information for a datagram including a command to which all control target devices 121 in the control network 122 respond. The datagram is used to automatically detect changes in the system configuration. The control device 120 then periodically transmits the datagram.

[0245] If such a datagram is constructed, a predetermined value is added to the value of WKC178 each time the datagram passes through each control target device 121, and so when the datagram is received by the control device 120, it represents the total number of control target devices 121. Therefore, the control device 120 monitors WKC178 each time the datagram is received, and can determine that the system configuration has changed if the value of WKC178 has changed (Y in step S060 shown in FIG. 13).

[0246] More specifically, if the value of WKC178 increases, the control device 120 can determine that a new control target device 121 has been added, and if the value of WKC178 decreases, the control device 120 can determine that a control target device 121 has been removed. In such a case, in step S061, the control target device selection unit 160 accesses the control target devices 121 one by one using a command to access an auto-increment address or a predefined station address for each control target device 121, and identifies the control target device 121 that has changed. Thereafter, step S062 and subsequent steps can be executed based on the identified control target device 121.

[0247] In this case, if the comparison of the received WKC 178 value with the expected value continues even though the control target device 121 has been added or removed, the abnormality determination unit 163 will determine that an abnormality has occurred. For this reason, when automatically recognizing the addition or removal of the control target device 121, a configuration is exemplified in which step S063 is executed immediately after step S060 so that the comparison of the WKC 178 is not executed. Alternatively, the abnormality determination unit 163 may determine that an abnormality has occurred when a link connection can be confirmed at the physical layer but logical communication is not established.

[0248] <Batch Designation of Multiple Control Target Devices 121> When selecting the control target devices 121 in step S061, the control target devices 121 may be grouped together in advance and selected on a group basis. Alternatively, system configuration patterns that are distinguished for each combination of the constituting control target devices 121 may be defined in advance, and one may be selected from the group of patterns in step S061. Either of these can be performed as a combination when a single control target device 121 is selected and steps S062 to S066 are performed.

[0249] Alternatively, one or more of steps S062, S063, S065, and S066 may be executed collectively for a group or pattern, and the remaining processes, including step S064, may be executed for each of the control target devices 121 that make up the group or pattern. Alternatively, in selecting the control target devices 121, a hierarchical structure may be configured in which, within the definition of such a group or pattern, other groups or patterns are referenced.

[0250] As a specific implementation example, the method for selecting the control target device 121 is realized by the HMI or setting file of the control system management device 125 or the control device 120, and such group definitions and pattern definitions are made possible in these HMIs and setting files. Also, such group definitions and pattern definitions may use formats such as XML or JSON. Furthermore, these groups and patterns may include not only the selection information of the control target devices 121, but also information defining the connections between the control target devices 121 and the network topology.

[0251] When allocating the control target devices 121 included in such a group or pattern to a logical address space, the starting address position may not be fixed, but only the relative position when allocating to the logical address space of each control target device 121 may be defined. In this case, the control target device selection unit 160 may determine the starting address position of the group or pattern when selecting a group or pattern in step S061.

[0252] Regarding the selection and setting of the plurality of control target devices 121 such as the above groups and patterns, a similar mechanism may be applied not only to step S061 shown in Fig. 13 but also to planning by the datagram generation information planning unit 111 and the logical address assignment planning unit 113 in step S002 shown in Fig. 8. That is, in step S002, when the datagram generation information planning unit 111 plans datagram generation information, datagrams for the plurality of control target devices 121 specified by the groups and patterns may be grouped together and included in the group and pattern definition.

[0253] For example, the control target devices 121 included in a group or pattern are assigned to a continuous area in the logical address space, and the partial definition of the logical address command (e.g., LRD) that accesses this area is included in the group or pattern definition. Examples of such partial definitions include the size 182 included in the datagram header 176 and the expected value of the WKC 178 at the time of reception. As for the address 181, since it is determined when the datagram generation information is planned, it is not included in the group or pattern definition.

[0254] 13, if a change to the system configuration is automatically executed when a predetermined condition, such as a predetermined timing or a predetermined period, is satisfied, the changed system configuration may be defined as a predetermined group or pattern. By defining multiple control target devices 121 in this way, the overall configuration of the control system 123 can be defined using individual partial configurations. As a result, the engineering man-hours required for the system configuration of the control system 123 can be reduced, and knowledge and know-how about the system configuration can be accumulated by reusing partial definitions, resulting in the effect of improving the efficiency of system definition.

[0255] <Major Effects of the First Embodiment> As described above, by using the method of the first embodiment, it is possible to realize a control system with excellent system variability, which can change the system configuration in response to requests for the control system while improving communication performance. To explain in detail, first, by using the logical address space, it is possible to communicate with multiple control target devices 121 at once, as shown in Figures 9 and 14. For example, in Figure 9C, it is possible to access control target devices 121A, B, and C using only datagram [1].

[0256] If datagrams can be aggregated in this way, communication overhead such as the header 176 and WKC 178 can be reduced, and performance can be improved by improving the utilization efficiency of communication bandwidth and shortening the communication cycle. In some cases, the number of communication frames can be reduced, and communication overhead associated with the Ethernet header 171 and FCS 173 can be reduced.

[0257] Therefore, with the above configuration, it is possible to improve the performance of control communication by utilizing logical addresses. Furthermore, it is also possible to accommodate changes in the system configuration. That is, since datagram generation information such as the expected value of WKC 178 can be changed based on the control system configuration information, the abnormality determination unit 163 can appropriately perform abnormality determination and the retransmission unit 164 can appropriately perform retransmission even after a change in the system configuration. In this way, by appropriately performing abnormality determination, abnormality notification, and retransmission processing in accordance with changes in the configuration of the control system 123, it is possible to improve the reliability of the control system 123.

[0258] Furthermore, because datagram generation information such as WKC178 is appropriately changed in accordance with changes in the system configuration, it is possible to distinguish between an abnormality in the communication path and a change in the number of control target devices 121 that occurs in accordance with changes in the system configuration, and to detect an abnormality in the communication path without erroneous determination. In other words, if the expected value of WKC178 is not changed in accordance with changes in the system configuration, a mismatch will occur between the value of the received WKC178 and the expected value, and it may be erroneously determined that an abnormality has occurred in the communication path.

[0259] Furthermore, when a logical address is used to access a control target device 121, communication with the control target device 121 is possible without depending on the location on the network of the control target device 121. Therefore, even if there is a change in the communication topology, such as when a communication cable between control target devices 121 is replaced, or a change in the connection order of the control target devices 121, it is possible to improve the performance of control communication by using a logical address and also to respond to changes in the system configuration.

[0260] Furthermore, there is a degree of freedom in allocating inputs and outputs of the control target device 121 to logical address spaces, so that allocation can be made flexibly according to the requirements of the control system 123. In the embodiment, the allocation of inputs and outputs of the control target device 121 to logical address spaces is managed as control system configuration information, so that the control system is not limited to allocation of a specific logical address space, and can be changed while maintaining the degree of freedom and flexibility in allocating logical address spaces.

[0261] While ensuring flexibility in changing the configuration of the control system 123, the control communication cycle can be shortened by improving communication performance through the use of logical address space. If the control communication cycle can be shortened, the control cycle of the control system 123 can be shortened, and as a result, the control performance of the control system 123 can be improved. In addition, surplus communication bandwidth can be utilized to perform 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 using IoT. Therefore, the operation of the control system 123 can be enhanced, and the performance and availability of the control system can be improved.

[0262] (Second embodiment) In the second embodiment, unlike the first embodiment, an embodiment relating to abnormality determination of a communication path and path redundancy will be described. <Hardware configuration of control device 120 in path redundancy> Fig. 15 is a block diagram showing an example of the hardware configuration of the control device 120 in Fig. 1 in a control communication system according to the second embodiment. In the control device 120 shown in Fig. 15, unlike the configuration example shown in Fig. 2, the communication control IC 102 is connected to multiple (two in this example) PHYs 103a, b to support path redundancy.

[0263] <Functional configuration of the control device 120 in route redundancy> Fig. 16 is a functional block diagram showing an example of the functional configuration of the control device 120 in Fig. 15. In Fig. 16, a redundant route control unit 200, which is a functional unit that controls route redundancy communication, is provided in addition to the configuration example in Fig. 3. The redundant route control unit 200 duplicates a communication frame transferred from the communication frame generation unit 153 and transmits the duplicated frame to the transmitter 154a and the transmitter 154b, or simply transmits the duplicated frame to the transmitter 154a.

[0264] The redundant route control unit 200 also transfers communication frames received from the receiving unit 158a and the receiving unit 158b to the communication frame disassembly unit 157 or the transmitting unit 155b. The redundant route control unit 200 also combines the contents received from the receiving unit 158a and the receiving unit 158b as necessary. Combining means, for example, taking the logical sum of the contents received by LRD (logical address read) and BRD (broadcast read).

[0265] The redundant path control unit 200 is implemented, for example, in the CPU 101, an application running on the CPU 101, or the communication control IC 102, or in a combination of these. By using the functional configuration shown in Fig. 16, it is possible to determine whether or not there is an abnormality in the communication path in the control network 122 and the location of the abnormality, and to achieve high reliability of communication using a redundant communication path, as will be described in detail later. There are two communication methods using redundant paths, as shown in Figs. 18 and 19 below.

[0266] 18A and 18B are schematic diagrams illustrating an example of a communication method using a redundant path in the control communication system according to the second embodiment. In Fig. 18, the redundant path control unit 200 duplicates a communication frame transferred from the communication frame generation unit 154 and transmits the duplicated communication frame from both the transmitter 155a and the transmitter 155b.

[0267] When the path is normal as shown in Fig. 18A, a communication frame transmitted from the transmitter 155a passes through the control target devices 121a, 121b, and 121c in this order and is received by the receiver 158b. Also, a communication frame transmitted from the transmitter 155b passes through the control target devices 121c, 121b, and 121a in this order and is received by the receiver 158a. On the other hand, when the path is abnormal as shown in Fig. 18B, a communication frame transmitted from the transmitter 155a is returned by the control target device 121a and then received by the receiver 158a. A communication frame transmitted from the transmitter 155b is returned by the control target device 121b and then received by the receiver 158b.

[0268] 19A and 19B are schematic diagrams illustrating an example of another communication method using a redundant path in the control communication system according to the second embodiment. In Fig. 19, the redundant path control unit 200 transmits a communication frame transferred from the communication frame generation unit 154 from the transmission unit 155a, and switches the transfer destination of the communication frame upon reception depending on the state of the path.

[0269] 19A , when the path is normal, a communication frame transmitted from the transmitter 155a passes through the control-target devices 121a, 121b, and 121c in this order, and is received by the receiver 158b. The redundant path control unit 200 transfers the communication frame received by the receiver 158b to the transmitter 155b. Thereafter, the communication frame transmitted from the transmitter 155b passes through the control-target devices 121c, 121b, and 121a in this order, and is received by the receiver 158a. The redundant path control unit 200 transfers the communication frame received by the receiver 158a to the communication frame disassembly unit 157. Note that the communication frame received by the receiver 158b has passed through the EPUs of all the control-target devices 121. For this reason, the redundant path control unit 200 may transfer the communication frame to the communication frame disassembly unit 157 without transferring it to the transmitter 155b.

[0270] 19B , the communication frame transmitted from the transmitter 155a is returned by the control target device 121a and then received by the receiver 158a. The redundant path control unit 200 transfers the communication frame received by the receiver 158b to the transmitter 155b. The communication frame transmitted from the transmitter 155b is returned by the control target device 121b and then received by the receiver 158b. The redundant path control unit 200 transfers the communication frame received by the receiver 158b to the communication frame disassembly unit 157.

[0271] The redundant route control unit 200 stores information for identifying a communication frame, and stores the information together with the processing performed on the communication frame (transmission by the transmitters 155a and 155b, reception by the receivers 158a and 158b, and transfer to the transmitter 155b), thereby making it possible to determine the processing to be performed when the communication frame is received. Examples of information for identifying a communication frame include information on the communication frame (parameters such as size, number of datagrams, and command of each datagram), the time when the communication frame was transferred from the communication frame generation unit 154 to the redundant route control unit 200, the time when the communication frame was transmitted from the transmitters 155a and 155b, and the time when the communication frame was received by the receivers 158a and 158b.

[0272] <Transmission Processing Procedure in Route Redundancy> The execution procedure of the transmission processing in the control device 120 when route redundancy is provided is almost the same as that shown in Fig. 10. However, in the case of the duplication method shown in Fig. 18, in step S019, the redundant route control unit 200 duplicates the communication frame forwarded from the communication frame generation unit 154 and forwards it to both the transmission unit 155a and the transmission unit 155b. Then, both the transmission unit 155a and the transmission unit 155b transmit the forwarded communication frame.

[0273] 19 , in step S019, the redundant route control unit 200 selects either the transmitting unit 155a or the transmitting unit 155b, and transmits the communication frame via the selected transmitting unit 155. At this time, the redundant route control unit 200 may always select a fixed one of the transmitting units 155a and 155b, or may select based on operational history, such as the past communication volume (total size of transmitted packets), the number of transmissions, or a transmitting unit 155 different from the transmitting unit 155 used in the previous transmission.

[0274] At this time, the redundant path control unit 200 may reflect the identifier of the selected transmitting unit 155 on the datagram or communication frame to be transmitted as a record of the processing (transmission by the transmitting unit 155a or the transmitting unit 155b) performed on the datagram or communication frame. For example, information on the processing performed may be reflected in the destination MAC address of the Ethernet header 171 or in the index 180 of the first datagram. For example, information on whether or not transmission is occurring at the transmitting unit 155a or the transmitting unit 155b may be represented by one bit, and one example is to reflect either or both of these on the datagram or communication frame (in this case, information "1" indicates the presence of the relevant event).

[0275] <Reception Processing Procedure in Route Redundancy Provision> The execution procedure of the reception processing in the control device 120 when route redundancy is provided is almost the same as that shown in Fig. 11. However, in step S030, when the receiving unit 158a or the receiving unit 158b receives a communication frame, it transfers the communication frame to the communication frame disassembly unit 157 via the redundant route control unit 200.

[0276] 18, the process proceeds to step S031 after both the receiving unit 158a and the receiving unit 158b have received the communication frame. At this time, the redundant route control unit 200 may combine the data fields of the datagrams in the received communication frame by logical summing, or may add up the respective WKCs 178, and transfer the combined data to the communication frame disassembly unit 157. More specifically, the redundant route control unit 200 may change the processing of the communication frame depending on the command in the received datagram. For example, if the command is an LRD or BRD command, the communication frame may be combined by logical summing, and if the command is another command such as an APRD command, the communication frame may be transferred to the communication frame disassembly unit 157 in sequence without being combined.

[0277] Similarly, with regard to the WKC 178, the redundant route control unit 200 may add up the WKC 178 for a command that can access multiple slaves, such as an LRD or BRD, or may transfer the WKC 178 of the datagram as is for a command that accesses a single slave, such as an ARPD command. Alternatively, the redundant route control unit 200 may select only the first-arrived communication frame or only the last-arrived communication frame and transfer them to the communication frame disassembly unit 157. The combination of these datagrams (logical sum or communication frame selection) may be performed by the communication frame disassembly unit 157 or the data storage unit 151.

[0278] In the case of the transfer method shown in Fig. 19, if a communication frame is received by either the receiving unit 158a or the receiving unit 158b in step S030 shown in Fig. 11, the process may proceed to step S031. Also, in the case of the transfer method shown in Fig. 19, in either or both of step S039 and step S043, the redundant path control unit 200 may reflect the identifier of the receiving unit 158 ​​that received the communication frame on the datagram or communication frame as a record of the processing performed on the received communication frame (reception by the receiving unit 158a or the receiving unit 158b).

[0279] For example, information about the process to be performed may be reflected in the destination MAC address of the Ethernet header 171, the index 180 of the first datagram, etc. For example, information about whether or not reception has occurred at the receiving unit 155a and whether or not reception has occurred at the receiving unit 155b may be represented by one bit, and one or both of these may be reflected in the communication frame (in this case, information "1" indicates the presence of the relevant event).

[0280] <Abnormality Determination and Response Procedure> Fig. 17 is a flowchart showing an example of the abnormality determination process by the abnormality determination unit 163 in Fig. 16 and the execution procedure of the abnormality response process by the retransmission unit 164 and the redundant path control unit 200. The procedure shown in Fig. 17 corresponds to steps S035, S041, and S042 in Fig. 11. The procedure shown in Fig. 17 is basically almost the same as that in Fig. 12, but the details of some steps differ from those in Fig. 12.

[0281] First, assume that the replication method shown in Fig. 18 is used. In this case, in the abnormality determination in step S051 or step S052 shown in Fig. 17, the abnormality determination unit 163 compares the sum of the values ​​of WKC178 of the datagrams received by the receiving unit 158a and the receiving unit 158b with the expected value of the datagram generation information, and determines that an abnormality has occurred if the sum does not match. Next, assume that the transfer method shown in Fig. 19 is used. In this case, for example, in the abnormality determination in step S051 or step S052, the abnormality determination unit 163 determines that an abnormality has occurred based on the processing performed on the received datagram or communication frame.

[0282] As a specific example, when receiving unit 158a receives a communication frame, if the communication frame stores information indicating that the communication frame was transmitted from transmitting unit 155a, received by receiving unit 158b, and then transmitted from transmitting unit 155b, then abnormality determination unit 163 can determine that the communication frame was processed along the normal path shown in Fig. 19A. On the other hand, when receiving unit 158a receives a communication frame, if the communication frame stores information indicating only that the communication frame was transmitted from transmitting unit 155a, then abnormality determination unit 163 can determine that the communication frame was processed along the path abnormality shown in Fig. 19B, and can determine that an abnormality exists.

[0283] Also, assume that when the receiving unit 158a receives a communication frame, information indicating that the communication frame was transmitted from the transmitting unit 155a, received by the receiving unit 158a, and transmitted from the transmitting unit 155b is stored in the communication frame. In this case, the abnormality determination unit 163 can determine that the path abnormality shown in FIG. 19B is a temporary occurrence, and that when the communication frame was transmitted from the transmitting unit 155b, the communication path became normal and the communication frame was received by the receiving unit 158a. In such a case, it can be determined that communication with the control target devices 121b and 121c is not possible, and therefore, for example, processing such as discarding the communication frame or resending the communication frame (step S055 shown in FIG. 17) can be performed.

[0284] 17, unlike Fig. 12, if the abnormality determination unit 163 determines in step S054 that retransmission should be performed (Y in step S054), the redundant route control unit 200 selects the transmitting unit 155 via the retransmitting unit 164 (step S070). For example, in the duplication method shown in Fig. 18, the redundant route control unit 200 selects both the transmitting unit 155a and the transmitting unit 155b.

[0285] On the other hand, in the transfer method shown in Fig. 19, the redundant route control unit 200 may select the transmitting unit 155 in the same manner as in step S019 shown in Fig. 10 in the following cases: - When the value of WKC178 at the time of receiving the datagram does not match the expected value defined in the datagram generation information - When the format of the received datagram does not match the format defined in the communication protocol - When the timeout value has elapsed - When an abnormality is detected in the cyclic redundancy check using FCS173 in the received communication frame

[0286] Alternatively, the redundant path control unit 200 may select the transmitting unit 155 in the same manner as in step S019 shown in Fig. 10 in the following cases: - When a communication abnormality is detected when accessing an area of ​​the data storage unit 151 - When an access abnormality is detected in the memory 104 or non-volatile storage medium 105 that implements the data storage unit 151 - When a soft error is detected in the communication control IC 102, memory 104, or non-volatile storage medium 105 that constitutes the arithmetic means or storage means of the functional unit - When an abnormality or the like occurs in step S038 in Fig. 11

[0287] Alternatively, the redundant route control unit 200 may select the transmitter 155 based on the processing performed on the received datagram or communication frame. For example, when the receiver 158a receives a communication frame, if there is a record of the communication frame being sent only from the transmitter 155a or there is no record of the communication frame being received by the receiver 158b, the abnormality determination unit 163 or the redundant route control unit 200 may determine that there is a route abnormality as shown in FIG. 19B. Therefore, the redundant route control unit 200 selects the transmitter 155b (step S070 shown in FIG. 17) and retransmits the communication frame (step S055 shown in FIG. 17).

[0288] Also, for example, assume that when the receiving unit 158a receives a communication frame, there is a record that indicates that the communication frame was transmitted from the transmitting unit 155a, received by the receiving unit 158a, and then transmitted from the transmitting unit 155b. In this case, the abnormality determination unit 163 or the redundant path control unit 200 can determine that the path abnormality shown in Fig. 19B is a temporary occurrence, and that when the frame was transmitted from the transmitting unit 155b, the communication path became normal and the frame was received by the receiving unit 158a.

[0289] Accordingly, since it can be determined that communication with the control target devices 121b and 121c is not possible, for example, processing such as discarding the communication frame or retransmitting the communication frame is executed. At this time, for example, the redundant path control unit 200 selects the transmitting unit 155 to be used for retransmission in the same manner as in step S019 shown in Fig. 10. By configuring in this manner, even if the path abnormality is temporary, it is possible to prevent communication frames from overflowing on the control network 122 (occurrence of flooding), and the control system 123 can be operated stably.

[0290] <Determining the Abnormal Location> To determine the abnormal location, in step S002 shown in Fig. 8, the datagram generation information planning unit 111 may plan datagram generation information for a datagram including a command to which all of the control target devices 121 in the control network 122 will respond. If a datagram including a command to which all of the control target devices 121 will respond is constructed, a predetermined value is added to the value of the WKC 178 each time the datagram passes through each control target device 121. This allows the abnormality determination unit 163 to determine the abnormal location in the event of a path abnormality. Hereinafter, a datagram including a command to which all of the control target devices 121 will respond will be referred to as an abnormality detection datagram, and the method for determining the abnormal location will be described in detail.

[0291] The expected value of the WKC 178 of the anomaly detection datagram is the same as the total number of control target devices 121 that make up the control system 123. Examples of the anomaly detection datagram include broadcast commands (BRD, BWR, BRW) to a register shared by the control target devices 121, and logical address access commands (LRD, LWR, LRW) for a common logical address assignment set in all the control target devices 121.

[0292] 18A, when a communication frame transmitted from the transmitter 155a is received by the receiver 158b, the value of WKC178 of the anomaly detection datagram is 3 (in the case of a read or write command, not a read / write command).Furthermore, when a communication frame transmitted from the transmitter 155b is received by the receiver 158a, the value of WKC178 of the anomaly detection datagram is 0.

[0293] 18B, when a communication frame transmitted from the transmitter 155a is received by the receiver 158a, the value of WKC178 of the anomaly detection datagram is 1 (in the case of a read or write command, not a read / write command) because the control target device 121a is responding. Also, when a communication frame transmitted from the transmitter 155b is received by the receiver 158b, the value of WKC178 of the anomaly detection datagram is 2 because the control target devices 121b and 121c are responding.

[0294] 19A, when a communication frame transmitted from the transmitter 155a is received by the receiver 158b, the value of the WKC 178 of the anomaly detection datagram is 3 (for a read or write command, not a read / write command). On the other hand, when a communication frame transmitted from the transmitter 155a is received by the receiver 158a during a path abnormality as shown in FIG. 19B, the value of the WKC 178 of the anomaly detection datagram is 1 (for a read or write command, not a read / write command) because the control target device 121a responds. Thereafter, when the communication frame received by the receiver 158a is forwarded to and transmitted by the transmitter 155b, and the transmitted communication frame is received by the receiver 158b, the value of the WKC 178 of the anomaly detection datagram is 3 because the control target devices 121b and 121c additionally respond.

[0295] That is, in step S051 shown in Fig. 17, in the case of the duplication method shown in Fig. 18, the abnormality determination unit 163 can determine the location of the path abnormality based on the value of WKC178 of the abnormality detection datagram received by the receiving unit 158a and the receiving unit 158b. For example, in the case of Fig. 18B, the values ​​of WKC178 of the abnormality detection datagram received by the receiving unit 158a and the receiving unit 158b are 1 and 2, respectively, and therefore it can be determined that the location of the path abnormality is the communication path between the control target device 121a and the control target device 121b.

[0296] Similarly, in step S051 shown in Fig. 17, in the case of the transfer method shown in Fig. 19, the abnormality determination unit 163 can determine the location of the path abnormality based on the value of WKC178 of the abnormality detection datagram received by the receiving unit 158a. For example, in the case of Fig. 19B, the value of WKC178 of the abnormality detection datagram received by the receiving unit 158a is 1, so it can be determined that the location of the path abnormality is the communication path between the control target device 121a and the control target device 121b.

[0297] Furthermore, using the total number of values ​​of WKC 178 in the replication method, or the value of WKC 178 after transfer in the transfer method, it is possible to determine whether there are path abnormalities in two or more locations or a failure in the controlled target device 121. Figure 20 is a diagram showing an example of a communication path when path abnormalities in multiple locations or a failure in the controlled target device 121 occurs in the replication method shown in Figure 18. In Figure 20, there are path abnormalities in two locations or a failure in one controlled target device 121b.

[0298] In this case, the values ​​of WKC178 in the anomaly detection datagrams received by the receiving units 158a and 158b are 1 due to the response from the control target device 121a and 1 due to the response from the control target device 121c, respectively. Therefore, the sum of the values ​​of WKC178 is 2. By determining in advance that the total number of control target devices 121 is 3 in the control device 120, in the case of FIG. 20, this total number and the sum of the received WKC178 values ​​do not match.

[0299] Therefore, the abnormality determination unit 163 can determine that there are two or more path abnormalities or a failure in one of the control target devices 121. Furthermore, based on the value of WKC178, the abnormality determination unit 163 can determine that the location of the abnormality is either in two paths consisting of the path between the control target device 121a and the control target device 121b and the path between the control target device 121b and the control target device 121c, or that there is a failure in the control target device 121b, or both of these.

[0300] The values ​​of WKC178 in the anomaly detection datagrams received by the receiving units 158a and 158b are the number of EPUs that the anomaly detection datagrams transmitted from the transmitting units 155a and 155b passed through. For this reason, the values ​​of WKC178 in the anomaly detection datagrams received by each receiving unit 158 ​​can be used to determine the control target devices 121 that can be reached from each transmitting unit 155, and ultimately to identify the location of a path anomaly or the control target device 121 with which communication was not possible.

[0301] Fig. 21 is a diagram showing an example of a communication path when path abnormalities or failures in the control target device 121 occur at multiple locations in the transfer method shown in Fig. 19. In Fig. 21, a path abnormality or failure in the control target device 121b occurs at the same location as in Fig. 20. In this case, the values ​​of WKC178 in the abnormality detection datagrams received by the receivers 158a and 158b are 1 due to the response from the control target device 121a and 2 due to the additional response from the control target device 121c, respectively.

[0302] 21, by determining in advance that the total number of control target devices 121 is three, the total number does not match the value of WKC178 received by the receiving unit 158b. Therefore, the abnormality determination unit 163 can determine that there are two or more path abnormalities or a failure in one of the control target devices 121. Furthermore, based on the value of WKC178, the abnormality determination unit 163 can determine that the location of the abnormality is either in two paths consisting of the path between the control target device 121a and the control target device 121b and the path between the control target device 121b and the control target device 121c, or that there is a failure in the control target device 121b, or both.

[0303] The value of WKC178 of the anomaly detection datagram received by the receiving unit 158a is the number of EPUs that the datagrams transmitted from the transmitting unit 155a passed through. On the other hand, the value of WKC178 of the anomaly detection datagram received by the receiving unit 158b is the sum of the number of EPUs that the datagrams transmitted from the transmitting unit 155a passed through and the number of EPUs that the datagrams transmitted from the transmitting unit 155b passed through. Therefore, based on the value of WKC178 of the datagram received by each receiving unit 158, it is possible to determine the control target devices 121 that are reachable from each transmitting unit 155, and ultimately to identify the location of a path abnormality or the control target device 121 with which communication is not possible.

[0304] 17, if the abnormality determination unit 163 determines that an abnormality has occurred in the communication path, it notifies the calculation unit 150 of information related to the abnormality. In addition to the information notified in step S056 described in FIG. 12, examples of the information related to the abnormality include the communication path in which it has been determined that an abnormality has occurred, specifically, the identifier of the control-target device 121 adjacent to the communication path, or the identifier of the control-target device 121 in which it has been determined that a failure has occurred. In the example shown in FIG. 20 or 21, the identifier of the control-target device 121b is notified to the calculation unit 140.

[0305] <When an Anomaly Occurs on the Communication Path Connected to the Control Device 120> FIG. 22A is a diagram illustrating an example of a communication path when an anomaly occurs on a communication path adjacent to the control device 120 in the replication method illustrated in FIG. 18 . In FIG. 22A , a path anomaly occurs between the control device 120 and the control target device 121c. When such a path anomaly occurs, the communication unit 159b detects the communication path anomaly, and the transmitter 155b loops back the communication frame internally instead of transmitting it. This results in the same result as if the receiver 158b had received the frame. Therefore, the value of the WKC 178 of the anomaly detection datagram received by the receiver 158a on the communication path is 3, and the value of the WKC 178 of the anomaly detection datagram received by the receiver 158b is 0.

[0306] On the other hand, if there is no abnormality in the communication path of the control network 122, the receiving unit 158a receives the anomaly detection datagram transmitted from the transmitting unit 155b, as shown in Fig. 18A, and therefore the value of WKC178 of the anomaly detection datagram received by the receiving unit 158a is 0. In Fig. 22A, the value of WKC178 of the anomaly detection datagram is non-zero, so the abnormality determination unit 163 can determine that an abnormality has occurred in the communication path. On the other hand, because the total number of control target devices 121 is 3 and the value of WKC178 of the anomaly detection datagram received by the receiving unit 158a is 3, the abnormality determination unit 163 can determine that the communication frame transmitted from the transmitting unit 155a has passed through the EPUs of all control target devices 121.

[0307] 11, the redundant route control unit 200 may proceed to step S031 without waiting for the reception of the communication frame by the receiving unit 158b. Therefore, for example, the redundant route control unit 200 may forward the communication frame to the communication frame disassembly unit 157 without combining the data areas of the datagrams in the received communication frame by logical summing, and without adding up the values ​​of the WKC 178 of each datagram.

[0308] 22B is a diagram showing an example of a communication path when an abnormality occurs in a communication path adjacent to the control device 120 in the transfer method shown in FIG. 22B, a path abnormality occurs at the same location as in FIG. 22A. When such a path abnormality occurs, the value of WKC178 of the abnormality detection datagram received by the receiving unit 158a becomes 3. On the other hand, based on the processing history associated with the received communication frame, if there is no transfer to the transmitting unit 155b, transmission from the transmitting unit 155b, or reception by the receiving unit 158b as shown in FIG. 19A, it can be determined that the communication frame was transmitted from the transmitting unit 155a and then received by the receiving unit 158a.

[0309] Therefore, the abnormality determination unit 163 can determine that an abnormality has occurred in the communication path. On the other hand, since the total number of control target devices 121 is 3 and the value of WKC178 of the abnormality detection datagram received by the receiving unit 158a is 3, the abnormality determination unit 163 can determine that the communication frame transmitted from the transmitting unit 155a has passed through the EPUs of all of the control target devices 121.

[0310] 17, the abnormality determination unit 163 may determine that retransmission is not necessary (N in step S053) and may not transfer the data to the transmission unit 155b. That is, in step S056 shown in Fig. 17, the abnormality determination unit 163 may notify the calculation unit 150, etc., of information about a communication path adjacent to the control device 120 where the path abnormality has occurred. However, the abnormality determination unit 163 may determine that there is no abnormality in the received datagram in step S035 shown in Fig. 11 (N in step S035), proceed to step S036, and then perform processing of recording the received data in the data storage unit 151 in subsequent steps S037 and S038.

[0311] <Changing the Total Number of Control-Target Devices 121 When Changing the System Configuration> As described above, in route redundancy, the content of judgment and processing may change depending on the total number of control-target devices 121 in the control system 123. Therefore, in the control device 120, for example, the total number of control-target devices 121 is stored in the datagram generation information storage unit 152, the control system configuration information storage unit 162, or a functional unit not shown.

[0312] 13 , the control target device selection unit 160 selects a control target device 121 to be changed in step S061, and the datagram generation information change unit 161 changes the total number information of the control target devices 121 in step S064. In this case, the total number information of the control target devices 121 included in the group or pattern is included in the group or pattern definition that specifies the multiple control target devices 121. In this case, the control target device selection unit 160 can change the total number of the control target devices 121 using this total number information when selecting a group or pattern in step S061.

[0313] With this configuration, even when the system configuration is changed, by changing the total number of control-target devices 121, it is possible to appropriately implement path redundancy according to the total number of control-target devices 121, thereby improving the reliability of the control system 123. By improving the reliability of the control system 123, it is possible to obtain effects such as an improvement in the operating rate and an improvement in productivity due to the control system 123.

[0314] <Major Effects of the Second Embodiment> As described above, by using the method of the second embodiment, it is possible to obtain the same effects as those described in the first embodiment. In addition, it is possible to identify the location of an abnormality or failure based on the value of WKC 178. In particular, even if the system configuration is changed, it is possible to identify the location of an abnormality or failure by changing the total number of control target devices 121. As a result, it is possible to realize a control system with excellent system variability.

[0315] (Third Embodiment) In the third embodiment, unlike the first and second embodiments, the same logical address is assigned to multiple control target devices 121, and the logical address is changed when the system configuration is changed. A problem that arises when using route redundancy is that time synchronization can become difficult because the route changes depending on the abnormality situation. Therefore, a mechanism is required that can achieve time synchronization even when an abnormality occurs and also accommodate changes in the system configuration.

[0316] <Achieving both route redundancy and time synchronization> Fig. 23 is a schematic diagram showing an example of operation when route redundancy is applied as a premise of the control communication system according to the third embodiment, and the same logical address is assigned to and read from multiple control target devices 121. In Fig. 23, the transfer method shown in Fig. 19 is applied. The logical address space has the characteristic that when the same address is assigned to and read from multiple control target devices 121, the information of the last accessed logical address is read.

[0317] 23, the control target devices 121a, 121b, and 121c are allocated a 4-byte space starting from the same logical address 0x10000000, and each holds different data 0, 1, and 2. Also, in FIG. 23, an abnormality has occurred in the communication path between the control target devices 121a and 121b. In this case, the read command sent from the transmitter 155a to the logical address 0x10000000 is received by the receiver 158a, and the data 0 held by the control target device 121a is stored in the data area 177 in FIG. 4.

[0318] 24A, 24B, and 24C are schematic diagrams illustrating an example of a method for responding to changes in system configuration using the logical address mechanism shown in Fig. 23. In the control system 123 shown in Fig. 24A and 24B, unlike the case of Fig. 23, each control target device 121 stores correction delay information for path abnormalities corresponding to the system configuration in a separate logical address. Then, when the system configuration changes, the control device 120 responds quickly by changing the address 181 of the datagram generation information from which the correction delay information is obtained.

[0319] The corrected delay information held by each controlled target device is the difference between the delay when the communication path to the adjacent controlled target device 121 is normal and the delay when an abnormality occurs in the communication path to the adjacent controlled target device 121. For example, the corrected delay information held by the controlled target device 121a is the difference between the communication delay when a communication frame propagates from the EPU of the controlled target device 121a to the EPU of the controlled target device 121b, as shown in Fig. 19A, and the communication delay when the communication frame is returned by the EPU of the controlled target device 121a and then propagates to the EPU of the controlled target device 121b via the receiving unit 158a and the transmitting unit 155b, as shown in Fig. 24A. Such corrected delay information can also be calculated in advance.

[0320] By storing the correction delay information in each control target device 121, the correction delay information is stored in the datagram of the LRD command received by the receiving unit 158a when a path abnormality occurs. The redundant path control unit 200 uses the correction delay information to correct the reference time of the control target device 121, which serves as the time reference for the time distribution datagram in the DC protocol, thereby offsetting the impact of increased delay due to the path abnormality on the control target device 121 beyond the path abnormality point. At this time, the control device 120 changes the logical address that stores the correction delay information for each control target device 121 depending on the system configuration.

[0321] 24A, the control system 123 is composed of control target devices 121a, 121b, and 121c, and the compensation delay information in this case is stored at logical address 0x10000000. Ca1 is the compensation delay information stored in the control target device 121a, Cb1 is the compensation delay information stored in the control target device 121b, and Cc1 is the compensation delay information stored in the control target device 121a.

[0322] Here, an example of a case where the system configuration is changed and the control target device 121c is removed is shown in Figure 24B. In Figure 24B, when an abnormality occurs in the communication path between the control target device 121a and the control target device 121b, the communication delay from the control target device 121a to the control target device 121b is reduced by the time it takes to go through the control target device 121c compared to Figure 24A. In other words, the corrected delay information can change depending on the system configuration, as shown in Figure 24A and Figure 24B.

[0323] 24B, which is composed of control target devices 121a and 121b, the control target devices 121a and 121b store correction delay information at logical address 0x10000004. Ca2 is the correction delay information stored in the control target device 121a, and Cb2 is the correction delay information stored in the control target device 121b. In the configuration shown in FIG. 24B, the control target device 121c is removed, so the control target device 121c does not store correction delay information.

[0324] With this configuration, in step S064 shown in Fig. 13, when datagram generation information modification unit 161 modifies datagram generation information in accordance with a change in the system configuration, it only needs to modify address 181 as shown in Fig. 24C. Specifically, datagram generation information modification unit 161 modifies the logical address from 0x10000000 to 0x10000004. In this case, for example, the logical address of the storage destination of correction time information in accordance with the system configuration is stored in advance as datagram generation information as shown in Fig. 24C and control system configuration information as shown in Figs. 9B and 9D.

[0325] <Major Effects of the Third Embodiment> As described above, by using the method of the third embodiment, the same effects as those described in the first and second embodiments can be obtained. In addition, mainly, even when changing the system configuration, the correction delay information can be changed immediately. For comparison, if a single logical address is used, it is necessary to access a specific address of each control target device 121 to update the correction delay information. Therefore, it takes time to change the system configuration depending on the number of control target devices 121 that make up the control system 123 and the time required to update the correction delay information of the control target devices 121.

[0326] On the other hand, due to the characteristics of the EtherCAT real-time network, correction delay information according to the system configuration can be calculated in advance and can be set in each control target device 121 at the setup stage of the control system 123. Therefore, when changing the system configuration, it is possible to quickly change the system configuration simply by changing the access destination logical address as shown in Fig. 24C.

[0327] 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 embodiments and can be modified in various ways without departing from the spirit of the invention. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace 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. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.

[0328] 120 Control device (control communication device) 121 Control target device (device) 123 Control system 153 Datagram generation unit 159 Communication unit 160 Control target device selection unit 161 Datagram generation information change unit 162 Control system configuration information storage unit 163 Abnormality determination unit 178 WKC

Claims

1. A control communication system having a control communication device with a communication unit for transmitting packets containing control data, and a plurality of devices communicably connected to a communication port included in the communication unit and operating in accordance with the received packets, wherein the packet includes a packet data area in which the control data is selected and arranged, and is transmitted from the communication unit to the device connected to the communication unit, and the control communication device generates the control data based on communication control information related to transmission and reception of the control data, maintains a correspondence relationship between the device and the control data, and changes the communication control information related to the device based on the correspondence relationship when the state of the device changes.

2. The control communication system according to claim 1, wherein the control data includes access content to a virtual area shared in the control communication system.

3. The control communication system according to claim 1, wherein the communication control information includes an expected value of a verification parameter included in the control data when received by the communication unit of the control communication device, and the verification parameter is determined based on the number of devices that process the control data.

4. The control communication system according to claim 2, wherein the communication control information includes an address of the virtual area.

5. The control communication system according to claim 1, wherein the communication control information includes the size of the control data.

6. The control communication system according to claim 2, wherein the correspondence relationship includes either or both of a correspondence between the device and the virtual area to which the address space of the device is assigned, or a correspondence between the control data and the virtual area accessed by the control data.

7. The control communication system according to claim 3, wherein the control communication device retransmits a packet including the control data when the expected value and the value of the verification parameter when the control data is received do not match.

8. The control communication device has a plurality of the communication units, and when the control communication device receives the packet, based on the expected value set for the communication unit that has received the packet and the value of the verification parameter of the control data included in the packet, it determines whether there is an abnormality in the communication path with the device, identifies the device adjacent to the communication path, and retransmits at least one of the packets including the control data from any of the plurality of communication units. The control communication system according to claim 3.

9. The communication control information includes the total number of the devices, and when the control communication device receives the packet, it does not retransmit the packet including the control data when the value of the verification parameter of the control data included in the packet is equal to the total number. The control communication system according to claim 8.

10. Determine the communication delay correction information when an abnormality occurs in the communication path between the first device and the second device adjacent thereto based on the configuration of the control communication system, store the communication delay correction information corresponding to different configurations of the control communication system in different virtual areas, the correspondence relationship includes the correspondence between the device and the address of the virtual area storing the communication delay correction information corresponding to the configuration of the control communication system, the communication control information includes the address of the virtual area storing the communication delay correction information, and when the configuration of the control communication system is changed, the control communication device changes the address included in the control data to the address of the virtual area storing the communication delay correction information corresponding to the configuration of the control communication system based on the correspondence relationship. The control communication system according to claim 4.

11. Aggregate and allocate the address space of the device to be changed for the control communication system on the virtual area. The control communication system according to claim 4.

12. The control communication device provides a period during which the processing based on the verification parameter when the packet is received is invalidated while changing the state of the device. The control communication system according to claim 7 or claim 8.

13. The control communication system according to claim 1, wherein the correspondence relationship is a correspondence relationship between the device in the maximum configuration that can be taken during the operation of the control communication system and the control data.

14. The control communication system according to claim 1, wherein the correspondence relationship includes the connection order of the devices, and the control communication device verifies the connection order of the devices based on the correspondence relationship when the state of the device changes.

15. The control communication system according to claim 1, wherein the control communication device has a plurality of the communication units, and the communication control information is defined for each of the communication units.

16. The control communication system according to claim 1, wherein a factor for changing the system configuration in the control communication system is associated with the device that is the target of the state change.

17. The control communication system according to claim 16, wherein the control communication device periodically transmits the control data for detecting a change in the system configuration in the control communication system, and automatically detects a change in the system configuration in the control communication system.

18. The control communication system according to claim 1, wherein the correspondence relationship associates the plurality of devices as a single group with the control data.

Citation Information

Patent Citations

  • Base station, control system, and base station control method

    JP2019029790A

  • Data transmission device and data transmission system

    WO2018230063A1

  • Control device and distributed control system

    WO2021079599A1