Control Communication System
The control communication device addresses the challenge of balancing communication performance and system configuration changes by dynamically adjusting packet transmission and device correspondence, enhancing system adaptability and efficiency.
Patent Information
- Application Number
- JP2025508502
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-19
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2043-12-19
AI Technical Summary
Existing control systems face challenges in achieving both improved communication performance and accommodating changes in system configuration, leading to increased communication delays and reduced bandwidth utilization efficiency due to overhead in Ethernet frames and per-device communication methods.
A control communication device that transmits packets with a packet data area and maintains correspondence between devices, dynamically adjusting communication control information based on device state changes, allowing for flexible system configuration and improved performance.
The solution enables a control system with enhanced system variability and adaptability to configuration changes while maintaining communication performance.
Smart Images

Figure 0007739653000001 
Figure 0007739653000002 
Figure 0007739653000003
Abstract
Description
[Technical Field]
[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. [Background technology]
[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] Under these circumstances, 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 process) 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. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] International Publication No. 2018 / 105047 Summary of the Invention [Problem to be solved by the invention]
[0006] For example, in large-scale or complex control systems, multiple sensors, controllers, and actuators are connected via a network. Control network technology is evolving to meet the requirements of such systems, including time constraints (e.g., worst-case latency), cost, reliability, and requirements specific to the application field. In particular, the control networks that make up control systems are being required to achieve faster communication speeds, shorter control communication cycles, and larger communication volumes, driven by the increasing scale and sophistication of control systems and the 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 changing requirements for the control system or to continually 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, in an Ethernet frame, in addition to the communication data for the application, a header, FCS (Frame Check Sequence), and IFG (Inter Frame Gap) must be communicated. 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. [Means for solving the problem]
[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. [Effects of the Invention]
[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. [Brief explanation of the drawings]
[0015] [Figure 1] FIG. 1 is a schematic diagram showing an example of the configuration of a control communication system according to the first embodiment. [Figure 2] 2 is a block diagram showing an example of the hardware configuration of a control device appearing in FIG. 1. FIG. [Figure 3] 2 is a functional block diagram showing an example of the functional configuration of a control device in FIG. 1. FIG. [Figure 4] 2 is a diagram illustrating an example of the configuration of an EtherCAT frame transmitted on the control network in FIG. 1. [Figure 5] 2 is a block diagram showing an example of the hardware configuration of the control target device in FIG. 1. [Figure 6] 6 is a block diagram showing an example of a functional configuration of a communication control IC for a controlled device in FIG. 5. [Figure 7] 2 is a block diagram showing an example of a functional configuration of a control system configuration device in FIG. 1. FIG. [Figure 8] 8 is a flowchart showing an example of an operation procedure of each functional unit included in the control system configuration device shown in FIG. 7. [Figure 9A] FIG. 9 is a diagram showing a specific example of the operation procedure shown in FIG. 8. [Figure 9B] FIG. 9 is a diagram showing a specific example of the operation procedure shown in FIG. 8. [Figure 9C] FIG. 9 is a diagram showing a specific example of the operation procedure shown in FIG. 8. [Figure 9D] FIG. 9 is a diagram showing a specific example of the operation procedure shown in FIG. 8. [Figure 10] 4 is a flowchart showing an example of a procedure for executing a transmission process in the control device shown in FIG. 3. [Figure 11] 4 is a flowchart showing an example of a procedure for executing a reception process in the control device shown in FIG. 3. [Figure 12] 4 is a flowchart showing an example of an execution procedure of an abnormality determination process by an abnormality determination unit and an abnormality handling process by a retransmission unit in FIG. 3. [Figure 13] 4 is a flowchart showing an example of an execution procedure when a system configuration is changed by a control target device selection unit, a datagram generation information change unit, and a control system configuration information storage unit in FIG. 3. [Figure 14A] FIG. 14 is a diagram showing a specific example of the execution procedure shown in FIG. 13. [Figure 14B] FIG. 14 is a diagram showing a specific example of the execution procedure shown in FIG. 13. [Figure 14C] FIG. 14 is a diagram showing a specific example of the execution procedure shown in FIG. 13. [Figure 14D] FIG. 14 is a diagram showing a specific example of the execution procedure shown in FIG. 13. [Figure 15] 10 is a block diagram showing an example of the hardware configuration of a control device in FIG. 1 in a control communication system according to a second embodiment. FIG. [Figure 16] 16 is a functional block diagram showing an example of the functional configuration of the control device in FIG. 15. FIG. [Figure 17] 17 is a flowchart showing an example of an execution procedure of an abnormality determination process by an abnormality determination unit and an abnormality response process by a retransmission unit and a redundant route control unit in FIG. 16. [Figure 18A] FIG. 10 is a schematic diagram illustrating an example of a communication method using a redundant path in the control communication system according to the second embodiment. [Figure 18B] FIG. 10 is a schematic diagram illustrating an example of a communication method using a redundant path in the control communication system according to the second embodiment. [Figure 19A] FIG. 10 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. [Figure 19B] FIG. 10 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. [Figure 20]19 is a diagram illustrating an example of a communication path when path abnormalities or failures in a control target device occur at multiple locations in the replication method illustrated in FIG. 18. FIG. [Figure 21] 20 is a diagram illustrating an example of a communication path when path abnormalities or failures in a control target device occur at multiple locations in the transfer method illustrated in FIG. 19. FIG. [Figure 22A] 19 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 duplication method illustrated in FIG. 18. FIG. [Figure 22B] 20 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 illustrated in FIG. 19. FIG. [Figure 23] FIG. 11 is a schematic diagram showing an example of operation when the same logical address is assigned to and read from a plurality of control target devices after applying route redundancy as a premise of the control communication system according to the third embodiment. [Figure 24A] FIG. 24 is a schematic diagram illustrating an example of a method for dealing with changes in system configuration by utilizing the logical address mechanism shown in FIG. 23. [Figure 24B] FIG. 24 is a schematic diagram illustrating an example of a method for dealing with changes in system configuration by utilizing the logical address mechanism shown in FIG. 23. [Figure 24C] FIG. 24 is a schematic diagram illustrating an example of a method for dealing with changes in system configuration by utilizing the logical address mechanism shown in FIG. 23. [Figure 25A] FIG. 14B is a diagram showing a specific example obtained by modifying FIG. 14B. [Figure 25B] FIG. 14B is a diagram showing a specific example obtained by modifying FIG. 14C. [Figure 25C] FIG. 14B is a diagram showing a specific example obtained by modifying FIG. 14D. DETAILED DESCRIPTION OF THE INVENTION
[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 will be omitted. Furthermore, when there are multiple components having the same or similar functions, they may be described using the same reference numerals with different subscripts. For example, one 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 the 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 made up 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 for 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 and 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 aircraft control system, or the like.
[0019] The control device 120 communicates with and controls the control target device 121 via a 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 configured to exchange sampling data, control commands, status signals, etc., within each control system, such as controllers in semiconductor manufacturing equipment or semiconductor inspection equipment, central control devices in a distributed control system (DCS), or protection and control devices in a power 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 personal computer, a control computer, a DCS controller, a multi-access edge computing (MEC) device, a computer cloud or server, and a supervisory control and data acquisition (SCADA) server. Further examples of the control device 120 include a programmable logic controller (PLC), an intelligent electronic device (IED), a protection control device, a cloud, a server, etc.
[0022] The controlled device 121 is a device such as a sensor or an actuator, and performs 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 a function of inputting information like a sensor, or only have a function of outputting information like an actuator, or may have both input and output functions.
[0023] Examples of the control target device 121 include industrial robots such as mobile robots, humanoid robots, and robot arms. Also, examples of the control target device 121 include an AGV (Automated Guided Vehicle), an AMR (Autonomous Mobile Robot), an autonomous mobile object, and a remote-controlled mobile object. Also, examples of the control target device 121 include a chip mounter, a machine tool table, processing equipment, a machine tool, semiconductor manufacturing equipment, semiconductor inspection equipment, medical equipment such as clinical testing equipment, or a motor, inverter, servo amplifier, or servo motor in the manufacturing equipment.
[0024] Alternatively, examples of the controlled device 121 include power equipment such as a circuit breaker and 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 with 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), IEC61784, 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 layered. For example, the OPC UA standard may be applied to the contents of the data area on TSN.
[0028] In the present specification, an example will be described in which EtherCAT is used as the control network 122. The EtherCAT network has the following features (1) to (3). (1) A control device 120 called a master is connected to one or more control target devices (also simply called devices) 121 called slaves. A control packet sent from the control device 120, more specifically, a communication frame containing a control packet, travels in order through one or more control target devices 121 and returns to the control device 120. Examples of topologies include a line type, a ring type, and a star type. If necessary, a relay device compatible with EtherCAT is used. (2) One control packet may contain control data, specifically datagrams, for each of the 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 for each of the multiple control target devices 121. (3) The control packet includes a control command indicating the access details to each of the multiple control target devices 121. When the control packet is sent from the control device 120, it is transferred to each control target device 121 in order in the connection order of the network, and then returns 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 of parameters and operation modes of the control device 120 and the controlled device 121. Alternatively, the settings include address allocation 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] In such setting, the control system configuration device 124 may determine the datagram for setting, and the determined information may be transferred to the control device 120, which may then transmit it to the control target 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 way, the 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 the configuration period. 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 the control system, and also an IoT system 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 to improve the performance of the control system and 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 the control device 120> Fig. 2 is a block diagram showing an example of the hardware configuration of the control device 120 in Fig. 1. In Fig. 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 the operation of the communication control IC 102 and obtaining status information of 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 an FPGA (Field Programmable Gate Array), a CPLD (Complex Programmable Logic Device), an ASIC (Application Specific Integrated Circuit), a gate array, etc. Alternatively, the communication control IC 102 may be configured as an integrated part of the CPU 101.
[0041] Furthermore, the communication control IC 102 may be configured as an IEEE 802.3 communication device including the MAC layer and PHY layer, or the PHY function, i.e., 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, there may be multiple communication control ICs 102.
[0042] The PHY 103 is a transceiver IC that implements a function for communicating 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 MAC layer processing of IEEE 802.3 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 that combines 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] Memory 104 is a temporary storage area for CPU 101 to operate, and stores the OS, application programs, etc. transferred from nonvolatile storage medium 105. Nonvolatile storage medium 105 is an information storage medium and is used to store the OS, applications, device drivers, etc., programs for operating CPU 101, etc., or to store the results of program execution. Examples of nonvolatile storage medium 105 include a hard disk drive (HDD), a solid state drive (SSD), and flash memory. Examples of easily removable external storage media include a floppy disk (FD), a CD, a DVD, 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 the 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. For example, control calculations that can change their state depending on past information, such as I (integral) control and control using a state machine, are exemplified. Other examples include statistical control calculations such as AI and machine learning processing for the purpose of state 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, CBM (Condition Based Maintenance), 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 target movement 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. The calculation unit 150 is, for example, 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 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 a datagram. Datagram generation information storage unit 152 is implemented, for example, by one or more of CPU 101, memory 104, and nonvolatile storage medium 105. Examples of datagram generation information include one or more of the following information (1)-(8):
[0053] (1) Information that makes up the datagram header 4, in other words, in the case of a control packet, examples include command 179, index 180, address 181, size 182, CIRCLE 184, and MORE 185. Note that IRQ 186 is mainly an event notification from the controlled device 121 side, so it is optional whether or not to include it in the datagram generation information. (2) Information of the communication frame generator 154 to which the generated datagram is to be transferred A plurality of communication frame generators 154 may be provided. (3) Communication cycle information
[0054] (4) Start time information The start time can 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 Figure 4, this information corresponds to WKC178. When receiving, by comparing the value of WKC178 with the expected value, it is possible to verify whether the target datagram was processed as expected. WKC178 is mainly used when receiving, so it does not need to be used when sending. (6) Status information to be sent in a given state machine This information is used to control whether a datagram is a target for transmission, for the purpose of switching the set of datagrams to be transmitted. This information may simply be a boolean value indicating whether or not a datagram is a target for transmission.
[0055] (7) Transmission pattern information This information is pattern information that indicates whether or not to transmit the target datagram for each communication cycle. (8) Datagram generation information valid / invalid For example, if some devices are disabled for reasons such as maintenance or cleaning, it is not necessary to generate and send datagrams to those devices. Therefore, the relevant datagram generation information can be disabled using this 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 required to construct a communication frame. For example, in the case of the EtherCAT standard, this information corresponds to an Ethernet header 171 and a Frame Check Sequence (FCS) 173.
[0058] The communication frame generation unit 154 transfers the constructed communication frame to the transmission unit 155. The communication frame generation unit 154 is implemented, for example, by 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 is implemented, for example, by 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 is implemented, for example, by the CPU 101 or an application running on the CPU 101, the communication control IC 102, and / or the PHY 103.
[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 is implemented, for example, by 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 by one or more 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 or both of the communication control IC 102 and the PHY 103.
[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 or the like. 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, the connection position in the control network 122, and the 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 a plurality of control target devices 121 to be selected. The process for the selected control target device 121 may be, for example, any of addition, stop, disablement, and removal, and may be different from each other. Specific examples of the process 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, by 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 position of the control target device 121) may be stored in advance in the control system management device 125 and 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 on 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 on 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; 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 is, 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 the following: 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 determines that an abnormality has occurred when one or more of the following criteria are satisfied: a) The WKC 178 of the received datagram differs from the expected value that is predetermined from the configuration plan and settings of the control system 123. b) The time elapsed between sending and receiving the target communication frame or datagram exceeds a specified value. c) An error was detected in FCS173 of the received communication frame. d) The number of datagrams that do not match the expected value of WKC178 in a) is greater than or equal to a predetermined number. e) The ratio of the number of datagrams that do not match the expected value of WKC178 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 decision may be made using a logical expression consisting of each condition. For example, d & e (d and e). In addition, the expected value of WKC178 in a) may be included and stored in the datagram generation information.
[0076] Here, examples of 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 at which the beginning of the communication frame is transferred from the communication frame generating unit 154 to the transmitting unit 155. The timing at which the end of the communication frame is transferred from the communication frame generating unit 154 to the transmitting unit 155. The timing at which the beginning of a communication frame is sent from the transmitter 155. The timing at which the end of the communication frame is sent from the transmitter 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 the datagram. The timing at which the communication frame disassembly unit 157 starts disassembling the communication frame. The timing when the datagram analysis unit 156 completes analysis of the first datagram. The timing when the datagram analysis unit 156 completes analysis of the last datagram. The timing at which the beginning of the communication frame is transferred from the receiving unit 158 to the communication frame disassembly unit 157. The timing at which the end of the communication frame is transferred from the receiving unit 158 to the communication frame disassembly unit 157. The timing at which the receiver 158 receives the beginning of the communication frame. The timing at which the receiver 158 receives the end of the 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 by an HMI or the like, and presentation by an LED on the control device 120. The abnormality determination unit 163 may be implemented by one or more of the CPU 101 or 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 there is an abnormality. For example, the retransmitting unit 164 stores 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 in order to retransmit it. When the abnormality that has occurred is in datagram units (for example, mismatch of 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 it may retransmit after a predetermined time has elapsed. Alternatively, after it receives 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 or 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 in FIG. 3 or between functional units, and times the occurrence time of a specific event. The time 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. An example of the implementation of the timing unit 165 is a timing device (such as a crystal oscillator or timer device) of the CPU 101 or the communication control IC 102, and the memory 104 or the non-volatile storage medium 105 may be used as a means for storing the measured time.
[0084] 3 shows one transmitter 155 and one receiver 158, the device may include a plurality of communication control ICs 102 and PHYs 103, and may include a plurality of transmitters 155 and a plurality of 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 transmitter 155 that transmits 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 controlled device 121 in Fig. 1. Here, the controlled device 121 conforming to the EtherCAT specification defined in Communication Profile Family 12 of IEC 61158 and IEC 61784 Part 2 will be described as an example. However, the controlled 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 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 nonvolatile storage medium 105 to store and refer to information necessary for communication. The control target device communication control IC 130 is connected to CPU 101 via bus 106, but may also be directly connected to CPU 101 using a dedicated bus. Furthermore, either memory 104 or 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 communication control IC 130 for the controlled device> Fig. 6 is a block diagram showing an example of the functional configuration of the communication control IC 130 for the control target device in Fig. 5. In Fig. 6, for example, four sets of communication port functions each consisting of a combination of a communication transfer control unit 141 and a communication unit 142 are provided. Furthermore, 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 implementation is an EtherCAT Processor Unit (EPU). Note that the communication processing unit 140 may be configured by being connected to other calculation functions and input / output functions (not shown).
[0093] The communication transfer control unit 141 is a functional unit that transfers a received packet to an adjacent communication transfer control unit 141 or a 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 the packet to the communication unit 142 or transfers the packet to an adjacent communication transfer control unit 141 based on the setting from the communication processing unit 140 and the connection state 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 one or more of the communication control IC 130 for the controlled device and the PHY 103.
[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 exemplified by being configured with 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 nonvolatile storage medium 105, and is exemplified by being configured with the bus 106 in FIG. 5.
[0096] <Functional configuration of the 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, control The system information storage unit 110 stores information about the control system 123. Specifically, the information about the control system 123 includes, for example, control processing and information processing requirements executed on the control system 123, and requirements of the control device 120 and the control target device 121. Examples of such requirements include a control cycle, a communication cycle, 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 nonvolatile 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 nonvolatile storage medium include both the control device 120 and the control target device 121.
[0098] The information of the control system 123 may also include information that depends 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 SyncManagers supported in the controlled 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 have information to be stored manually input by a system operator or the like, or may dynamically collect information on the control device 120, the controlled device 121, and the control network 122 using information collection software or a predetermined communication protocol. Examples of such a communication protocol include SNMP (Simple Network Management Protocol) and access to a predetermined register (e.g., a register indicating the model number of a slave IC) in EtherCAT. The control system information storage unit 110 may be implemented by one or more of the CPU 101 or 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 allocation of logical address space 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 constructing unit 112 constructs configuration information of the control system 123 to be stored in the control system configuration information storage unit 162 shown in Fig. 3. 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 constructing unit 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 of the area and the allocation method can be freely set. The logical address allocation planning unit 113 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, for example.
[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, constraints, satisfaction conditions, and convergence conditions may be defined in either or both of the datagram generation information planning unit 111 and the logical address allocation planning unit 113, 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. If the plan does not converge even after a predetermined number of repetitions, the failure of the plan may be notified to an operator or external parties.
[0107] <Operation Procedure of the Control System Configuration Device 124> Fig. 8 is a flowchart showing an example of the operation procedure of each functional unit included in 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 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 a 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 read access is an input from the perspective of the control device 120), and the network topology. The logical address allocation planning unit 113 plans allocation to the logical address space shown in FIG. 9B from this information. There are various possible methods for allocation to the logical address space, but in FIG. 9B, for example, the following steps (1) to (3) are followed.
[0109] (1) The control target devices 121 are grouped based on the input / output direction. As a result, the devices are divided into two groups: control target devices 121A, B, C, D, and E, which are input (read), and a control target device 121F. (2) An area in the logical address space is allocated to each group. In Figure 9B, area 190a starting from 0x00000000 and area 190b starting from 0x00001000 are assigned to each group. Note that the starting address of 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 area 190a of the first group. For example, it can be an address contiguous to area 190a. (3) Within each group divided in (1), each control target device 121 is assigned to a logical address space in the order of connection to the control device 120.
[0110] 9B, in the first group, inputs and outputs are allocated to the control target devices 121A, B, C, D, and E in this order from the beginning of area 190a. Since the second group only has control target device 121F, inputs and outputs are allocated from the beginning of area 190b. In this way, in FIG. 9B, inputs and outputs of the control target devices 121 are allocated to the logical address space taking into consideration two attributes, input / output 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, when determining the arrangement in the logical address space, the order in which each attribute is applied may be changed.
[0112] Alternatively, when the control device 120 includes a plurality of communication units 159, allocation to the logical address space may be determined by the communication unit 159 to which the target control target 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 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 of the control system 123 held in the control system information storage unit 110 and the allocation information of the logical address space 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, each area 190 is grouped based on the input / output direction, so the same commands can be applied within the area 190. Since area 190a is in the input direction, it can be grouped into a datagram of an LRD command, which is a read for a logical address. Similarly, since area 190b is in the output direction, it can be grouped into a datagram of an LWR command, which is a write for a logical address.
[0115] However, because there is an upper limit to the data size of Ethernet frames or EtherCAT datagrams, there are restrictions on the input / output of the controlled device 121 that can be aggregated. In the configuration shown in Fig. 9C, the controlled 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 1486 bytes. The combined input / output of the controlled devices 121A, B, and C is 1000 bytes (= 400 bytes + 400 bytes + 200 bytes), and when the controlled device 121D is included, the total is 1500 bytes, exceeding the upper limit of 1486 bytes.
[0116] For this reason, in the configuration shown in Figure 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 configuring a datagram, it is necessary to ensure that it fits within the upper limits of communication frames and datagrams.
[0117] In the configuration shown in FIG. 9C, the datagram is configured as a unit for each control target device 121, but this is not limiting and the datagram may be subdivided. That is, the area of the control target device 121D may be divided and included in each of datagram [1] and datagram [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 an expected value for 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 control target devices 121 that process the datagram. Datagram [1] is addressed to control target devices 121A, B, and C, so the expected value of WKC178 is set to 3. Similarly, datagram [2] is addressed to control target devices 121D and E, so the expected value of WKC178 is set to 2, and datagram [3] is addressed to control 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 construction 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. ·Are there any overlaps between the areas 190 of the logical address space planned by the logical address allocation planning unit 113? Whether a search method or an optimization method has been executed a predetermined number of times when it is applied to the planning of logical address space allocation by the logical address allocation planning unit 113 or the planning of datagram generation information by the datagram generation information planning unit 111. In this case, for example, an optimal plan may be adopted based on an index such as minimizing the number of datagrams or the number of communication frames or maximizing the utilization efficiency of the communication band. Whether indicators such as the number of datagrams and the efficiency of communication bandwidth utilization satisfy predetermined values determined based on information from the control system. For example, whether the optimal values for the number of datagrams and 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 the 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. In addition, 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. The upper limit of the data size of an Ethernet frame is also 1498 bytes, so 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 condition is satisfied (Y in step S003), the control system configuration information creator 112 creates 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 allocated in order from the beginning to area 190a of the logical address space, 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 specifically includes the information shown in Fig. 9D and the information shown in Fig. 9B, which is related to Fig. 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. At this time, 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. In addition, 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, when 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, when the datagram generation information planned separately for each communication unit 159 includes an expected value of the WKC 178, the expected value of the WKC 178 is determined based on the control target device 121 connected to each communication unit 159. Alternatively, only the expected value of the WKC 178 may be defined for each communication unit 159 in certain datagram generation information. Furthermore, when 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 set as the data area for the control target devices 121A, B, C, D, and E, just like area 190a.
[0132] <Transmission Processing Procedure of the Control Device 120> Fig. 10 is a flowchart showing an example of the execution procedure of transmission processing in the control device 120 shown in Fig. 3. In Fig. 10, first, the datagram generation unit 153 waits for the execution start timing (step S010). The execution start timing of the datagram generation unit 153 is determined based on, for example, the control system configuration information, and the transmission timing and communication cycle specified in the control system information. 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). Then, datagram generation unit 153 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 may determine 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 may determine that the datagram is to be generated if the time elapsed since the previous transmission time matches the transmission period or if the transmission period has elapsed.
[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 eligible for generation may be one or more of the criteria listed above. If there are multiple criteria, it may be that any one of the conditions is met (logical OR), or that all of the conditions are met (logical AND), or that a condition defined by an arbitrary logical expression is met. An example of an arbitrary logical expression is that a datagram is determined to be eligible for generation if "it contains information that the datagram generation information is valid, and the state matches, or the transmission timing matches a predetermined condition." If datagram generation unit 153 determines in step S012 that the datagram generation information is the datagram generation information to be generated (Y in step S012), it prepares data based on the datagram generation information (step S013). At this time, 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. That is, the datagram generation unit 153 extracts the necessary data from the data storage unit 151 using this position and size.
[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 size of the datagram generation information that precedes the extracted datagram generation information. If the storage area of data storage unit 151 is divided into write-type commands and read-type commands, the storage location may be calculated by adding up the size of the datagram generation information for only the write-type 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 to be included in the write-type 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 is a read direction in which the control device 120 acquires information about the control target 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 the ARMW command or the FRMW command that reads only the 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 exemplified 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, a default value (for example, 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 extracts the header information, the procedure SThe data generated in step 013 is combined with the WKC 178 to generate a datagram. Generate Based on the information, the information is transferred to the corresponding communication frame generation unit 154 (step S015). Here, in the case where a plurality of communication frame generation units 154 are provided, when the content to be notified to all the control target devices 121 or when the information is to be acquired from all the control target devices 121, for example, the content is transferred to all the 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, 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 of the necessary datagram generation information has been processed (step S016). At this time, datagram generator 153 may determine whether all of the datagram generation information in datagram generation information storage 152 has been processed, or may determine that all of the 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 to be 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 to be 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 information 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 information is the last datagram generation information. For example, it may be determined whether the information 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 combines the datagrams transferred from the datagram generation unit 153 and adds header and tail information in accordance with the communication protocol of the control network 122 to generate a communication frame. In the case of EtherCAT, as shown in Fig. 4, an Ethernet header 171 and FCS 173 are combined with a group of datagrams. The order in which the datagrams are transferred from the datagram generation unit 153 is exemplified as the order in which the datagrams are concatenated.
[0153] Alternatively, the communication frame generation unit 154 may rearrange the datagrams based on the content of the datagrams. For example, the datagrams may be rearranged in ascending or descending order according to the size of the datagrams. 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 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 datagram 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. 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 notifying the calculation unit 150 that transmission has been completed.
[0158] Alternatively, as a completion process, if an abnormality occurs in the procedures from step S011 to step S019, the occurrence of the abnormality may be notified to the calculation unit 150. 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, an access abnormality occurs in the memory 104 or nonvolatile storage medium 105 that implements the data storage unit 151, or a soft error (temporary semiconductor failure) occurs in the communication control IC 102, memory 104, or nonvolatile storage medium 105 that constitutes the calculation means or storage means of the functional unit, this may be notified. To detect these abnormalities, for example, a device or functional unit with an error correction code (ECC) function may be used, or when data is stored in the data storage unit 152, memory 104, or nonvolatile storage medium 105, an error correction code such as a parity check may be stored together with the data.
[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 allocation 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 a function to check assumed conditions such as upper size limits.
[0161] The notification accompanying the completion process in step S020 is implemented, for example, 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 the communication performance and to judge an abnormality by comparing with the timeout value. The transmission time is not set for each communication frame, but for each step S It may be stored for each datagram when the datagram is forwarded in 015.
[0162] When extracting the datagram generation information in step S011, a mode based on 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. For example, completion of the ESM-based state change may be confirmed in step S020. For example, a datagram requesting an ESM-based state change 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 generators 154, or transmitters 155, and therefore may be executed in parallel.
[0165] <Reception process procedure of the control device 120> 11 is a flowchart showing an example of a procedure for executing a reception process in the control device 120 shown in FIG. 3. First, the receiving unit 158 waits for reception of a communication frame (step S030). When the receiving 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 receiving 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 analyzer 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 also 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 retrieved datagram generation information (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 data storage unit 151 is divided into write-type commands and read-type commands, the storage location may be calculated by adding up the size of the datagram generation information for only the read-type commands. Whether special commands such as the ARMW command and FRMW are included in the read-type 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 the 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 may be 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 a predetermined condition of a header parameter value or a 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), the process returns to step S032. On the other hand, if the control device 120 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 there is an abnormality in the communication frame (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 it is determined in step S041 that there is no abnormality in the communication frame (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 multiple communication units 159 are provided, each communication unit 159 may notify the completion of the reception process for the received communication frame.
[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 a predetermined number of datagrams of the 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 a 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, it is possible to measure the communication time for each communication unit 159 and confirm and verify whether the connection configuration of the control target device 121 for each communication unit 159 is appropriate.
[0179] <Abnormality detection and response procedures> 12 is a flowchart showing an example of the execution procedure of the abnormality determination process by the abnormality determination unit 163 and the abnormality response process by the retransmission unit 164 in FIG. 3. The procedure shown in FIG. 12 corresponds to steps S035, S041, and S042 in FIG. 11. In FIG. 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 the received datagram or datagram generation information with the abnormality determination unit 163, or the timing when the communication frame disassembly unit 157 shares the received communication frame with the abnormality determination unit 163.
[0180] Alternatively, the timing for determining an abnormality may be a timing when a predetermined period has elapsed since any of the following timings (A) to (C): The timing for determining an abnormality 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 at which the communication frame generating unit 154 transfers the generated communication frame to the transmitting unit 155 (C) The timing when the transmitter 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 when the datagram is transferred in step S015 in Fig. 10 or when the communication frame is transferred or sent in step S019 to when the communication frame is received in step S030 in Fig. 11 or when the datagram is received 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 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 constitutes 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 correcting code (ECC) function, or storing data in the data storage unit 151, memory 104, or nonvolatile storage medium 105 together with an error correcting code such as a parity check.
[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 in order by executing one step first. Alternatively, only one of them 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 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 to be retransmitted.
[0190] Alternatively, if no abnormality occurs during the reception process but an abnormality occurs during access to data storage unit 151, memory 104, or nonvolatile storage medium 105, abnormality determination unit 163 may determine not to retransmit. In such a case, abnormality determination unit 163 may, for example, cause datagram analysis unit 156 or the like to access data storage unit 151, memory 104, or nonvolatile storage medium 105 again. If the re-access fails or if the re-access fails a predetermined number of times, abnormality determination unit 163 may, for example, notify calculation unit 150 or an external device.
[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 in units of communication frames, or in units of datagrams determined to be abnormal due to 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 transmission 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 transmission 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 the datagram or communication frame that needs to be retransmitted and transfer it to the transmission 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 parameter to be changed may be a part of the selected parameter (for example, a part of the source MAC address or a predetermined bit of index 180). In addition, in accordance with the change in the configuration of the communication frame, the retransmitting unit 164 may change parameters such as MORE 185.
[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 also notify the calculation unit 150 of the occurrence of an abnormality by notifying the calculation unit 150 of the occurrence of an abnormality along with 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 control target device selection unit 160, the datagram generation information change unit 161, and the control system configuration information storage unit 162 in Fig. 3 change the system configuration. 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. The system configuration change refers to the addition or removal of the 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 executed a predetermined number of communications, or after a predetermined communication size has been executed (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 such as 10 milliseconds every 5 seconds, or a relatively long cycle such as 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 original configuration does not have to be restored 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 a 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 will be considered in which control target devices 121B, C, and E are removed and control target device 121G is newly added. An example of operation in this case 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 or the sensor value.
[0204] Next, the datagram generation information change unit 161 acquires the control system configuration information held in 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 timing.
[0205] Then, datagram generation information change unit 161 executes the response process 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 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 shown 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. Alternatively, examples of the response process include changing the ESM, changing the communication cycle, and stopping time synchronization using the DC protocol. Note that the response process in step S063 does not necessarily have to be performed. Furthermore, in accordance with the case where the system configuration is automatically changed in step S060, the response process in step S063 may be performed at a predetermined period of time at a predetermined cycle.
[0207] Next, the datagram generation information modification unit 161 modifies the datagram generation information (communication control information) held in 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 the WKC 178, first, the datagram generation information modification unit 161 finds 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 the WKC 178 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 that the control target device 121E to be removed is included in datagram [2] based on the control system configuration information shown in Fig. 14D. 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 that the control target device 121G to be added will be newly included in datagram [3] based on the control system configuration information shown in Fig. 14D. 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 the WKC 178 for datagram [3] from 1 to 2, which is the sum of 1, as shown in Fig. 14C.
[0211] In addition, datagram generation information modification unit 161 may change the size of data area 177 (size 182 as a parameter). As a specific example, in Fig. 14A, control target devices 121B and 121C are removed from control system 123. Therefore, as shown in Fig. 14C, datagram generation information modification unit 161 changes the size of data area 177 for datagram [1], that is, size 182 in Fig. 4, from 1000 bytes to 400 bytes, which is obtained by subtracting 600 bytes, which is the total size of control target devices 121B and 121C.
[0212] At this time, the datagram generation information modification unit 161 can obtain from the control system configuration information shown in Fig. 14D that the communications addressed to the control target devices 121B and C are included in datagram [1]. 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 C is 600 bytes.
[0213] Similarly, datagram generation information modification unit 161 finds out, based on the control system configuration information shown in Fig. 14D, 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 the data field 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 unit is 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 WKC 178) 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 the target.
[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 (for example, 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 (for example, a DIP switch) 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 and connect it to a power source and the control network 122, thereby adding the control target device 121G to the control system 123. Alternatively, the power source of the control target device 121G that has been installed in the control system 123 in advance may be turned on manually, or the power source of the control target device 121G may be turned on automatically 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 of the control system 123, restarting communication to the changed control target device 121, enabling comparison with the expected value of the WKC 178, changing the ESM, reallocating the logical address, setting the SyncManager, changing the communication cycle, and re-executing time synchronization using the DC protocol.
[0222] Alternatively, the corresponding processing may involve checking the connection order of each control target device 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 address of each control target device 121). The control device 120 may sequentially change the value of the auto-increment address, 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 case where the system configuration is automatically changed, 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, the explanation has focused on commands for logical addresses, but datagrams that can be changed are not limited to this. For example, 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 are examples.
[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 WKC 178 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 WKC 178 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 yet another example, assume that one control target device 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, for example, set to a value obtained by subtracting the number of selected control target devices 121 when the control target device 121 is removed from the control system 123, and set to a value obtained by adding the number of selected control target devices 121 when the control target device 121 is added 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 following 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 following the control target device 121 to be removed are incremented by 1.
[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 the 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] <Reconnection example> When a removed or 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 Address of Control Target Device 121 to be Changed> Furthermore, if the control-target devices 121 to be added or removed from the control system 123 are known in advance, the logical address allocation planning unit 113 may, for example, allocate the control-target devices 121 to be changed to the beginning or end of the logical address when allocating the logical address in step S001 shown in Fig. 8. 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. This eliminates the 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 an invalid area 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 the area 190a, and the input / output of the control-target device D is allocated contiguous to the input / output of the 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 the control target devices 121A, D, and B is accessed by datagram [1], and the input / output of the 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 the control target devices 121A and D, and datagram [2] may be assigned to access to the input / output of the control target devices 121B, C, and E. In either configuration, the upper limit size constraints for communication frames and datagrams are satisfied.
[0238] Assuming such a configuration, if the control target devices 121B, C, and E are removed as in the comparative example, in Fig. 25B, datagram [1] can be left as is (however, the data size may be changed), and datagram [2] can be invalidated because it is an 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, it is possible to improve the utilization efficiency of the communication band when changing the system configuration.
[0240] <Applied 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 a sensor to the control system 123 for monitoring and analysis in order to improve performance or to resolve some malfunction.
[0241] In such a case, the procedure shown in Fig. 8 is executed based on the maximum configuration of the group of control target devices 121 that the control system 123 can have. That is, the control system information storage unit 110 holds information on the maximum configuration of the group of control 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 configuration of the group of control 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 operation of the control system 123, the group of control target devices 121 with the maximum configuration will be used (when other control target devices 121 are not involved), and therefore 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 start of the control system 123, or when monitoring and analysis are desired by temporarily adding a sensor 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 120 may also be configured to automatically recognize when an operator or worker of the control system 123 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 WKC 178 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 WKC 178 each time the datagram is received, and can determine that the system configuration has changed if the value of WKC 178 has changed (Y in step S060 shown in FIG. 13).
[0246] More specifically, if the value of WKC 178 increases, the control device 120 can determine that a new control target device 121 has been added, and if the value of WKC 178 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 that accesses 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 in the physical layer but logical communication is not established.
[0248] <Batch designation of multiple control target devices 121> In addition, when selecting the control target device 121 in step S061, a plurality of control target devices 121 may be grouped in advance and selected on a group basis. Alternatively, system configuration patterns 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 other groups or patterns are referenced within the definition of such a group or pattern.
[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 allocation 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 a partial definition of a logical address command (e.g., LRD) for accessing 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, it is determined when the datagram generation information is planned, and therefore 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 definition. 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 related to the system configuration of the control system 123 can be reduced, and knowledge and know-how related to 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, typically by improving communication performance and changing the system configuration according to the demands on the control system. Explaining 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 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 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 respond to 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 the WKC 178 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 the WKC 178 is not changed in accordance with changes in the system configuration, a mismatch will occur between the received value of the WKC 178 and the expected value, which may result in an erroneous determination that an abnormality has occurred in the communication path.
[0259] Furthermore, when the logical address is used to access the control target device 121, communication with the control target device 121 can be made 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 the communication cable between the 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 the 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 the degree of freedom and flexibility in allocation of logical address spaces is maintained, allowing changes to the control system.
[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 used 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) The second embodiment differs from the first embodiment in that it describes an embodiment relating to abnormality determination of a communication path and path redundancy. <Hardware configuration of the 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. Unlike the example configuration shown in Fig. 2, the control device 120 shown in Fig. 15 has a communication control IC 102 connected to multiple (two in this example) PHYs 103a and 103b to support path redundancy.
[0263] <Functional configuration of the control device 120 in route redundancy> 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 redundant route communication, is provided in addition to the configuration example in FIG. 3. The redundant route control unit 200 copies a communication frame transferred from the communication frame generation unit 153 and transmits it to the transmission unit 15. 5 a and transmitter 15 5 b or simply send it to the sender 15 5 Send to a.
[0264] Furthermore, the redundant route control unit 200 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. Furthermore, the redundant route control unit 200 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) or BRD (broadcast read).
[0265] The redundant path control unit 200 is implemented, for example, by the CPU 101, an application running on the CPU 101, or the communication control IC 102, or by 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 where the abnormality has occurred, 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 a redundant path, as shown in Figs. 18 and 19 below.
[0266] <Redundant communication using replication method> 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 transmission unit 155a and the transmission unit 155b.
[0267] 18A, 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. 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] <Redundant communication using transfer method> 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 transmitter 155a, transmitter 155b, reception by the receiver 158a, receiver 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 (size, number of datagrams, parameters such as the command of each datagram, etc.), 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 transmitter 155a, transmitter 155b, and the time when the communication frame was received by the receiver 158a, receiver 158b, or any combination thereof.
[0272] <Transmission processing procedure for route redundancy> The execution procedure of the transmission process in the control device 120 when providing route redundancy is almost the same as that 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 transferred from the communication frame generation unit 154 and transfers 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 transferred 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 unit 155a or the transmitting unit 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 process (transmission by the transmitting unit 155a or the transmitting unit 155b) to be performed on the datagram or communication frame. For example, information on 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, or the like. For example, information on whether or not transmission has occurred 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 for route redundancy> The procedure for executing the reception process in the control device 120 when providing route redundancy 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 receive the communication frame. At this time, the redundant route control unit 200 combines the data fields of the datagrams in the received communication frame by logical summing, or adds up the respective WKCs 178, and transfers 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 of the received datagram; for example, if the command is an LRD or BRD command, the command may be combined by logical summing, and if the command is another command such as an APRD command, the command 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 command, and 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 it 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 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 on the communication frame (in this case, information "1" indicates the presence of the relevant event).
[0280] <Abnormality detection and response procedures> Fig. 17 is a flowchart showing an example of the execution procedure of the abnormality determination process by the abnormality determination unit 163 and the abnormality response process by the retransmission unit 164 and the redundant route control unit 200 in Fig. 16. 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 WKC 178 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 values do 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 information indicating that the communication frame was transmitted from transmitting unit 155a, received by receiving unit 158b, and then transmitted from transmitting unit 155b is stored in the communication frame, 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 information indicating only that the communication frame was transmitted from transmitting unit 155a is stored in the communication frame, 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 determining 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, since it can be determined that communication with the control target devices 121b and 121c is not possible, for example, the processing to discard the communication frame or to retransmit the communication frame (step S055 shown in Fig. 17) can be executed.
[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 sending unit 155 in the same manner as in step S019 shown in FIG. 10 in the following cases. - When the value of WKC178 when receiving a datagram does not match the expected value defined in the datagram creation information When the format of the received datagram does not match the format defined by the communication protocol - If 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 route control unit 200 may select the transmission 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 and the nonvolatile storage medium 105 that implement the data storage unit 151 When a soft error is detected in the communication control IC 102, memory 104, or nonvolatile storage medium 105 that constitutes the computing means or storage means of the functional unit. If an error occurs in step S038 in Figure 11
[0287] Alternatively, the redundant route control unit 200 may select the transmitting unit 155 based on the processing performed on the received datagram or communication frame. For example, when the receiving unit 158a receives a communication frame, if there is a record of the communication frame being sent only from the transmitting unit 155a or there is no record of the communication frame being received by the receiving unit 158b, the abnormality determining 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 transmitting unit 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 a communication frame is received by the receiver 158a, there is a record in the communication frame that indicates that the communication frame was transmitted from the transmitter 155a, received by the receiver 158a, and then transmitted from the transmitter 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 occurred temporarily, and that the communication path became normal when the frame was transmitted from the transmitter 155b, and that the frame was received by the receiver 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 abnormalities> To determine the location of the abnormality, in step S002 shown in Fig. 8, the datagram generation information planning unit 111 may plan datagram generation information for a datagram including commands to which all of the control target devices 121 in the control network 122 will respond. If a datagram including commands 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 location of the abnormality when a path abnormality occurs. Hereinafter, a datagram including commands 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 location of the abnormality 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 WKC 178 of the anomaly detection datagram is 3 (in the case of a read or write command, not a read / write command). Also, when a communication frame transmitted from the transmitter 155b is received by the receiver 158a, the value of WKC 178 of the anomaly detection datagram is 0.
[0293] 18B, when the communication frame transmitted from the transmitter 155a is received by the receiver 158a, the value of WKC 178 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 the communication frame transmitted from the transmitter 155b is received by the receiver 158b, the value of WKC 178 of the anomaly detection datagram is 2 because the control target devices 121b and 121c are responding.
[0294] 19A, when the 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 the 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 transferred to the transmitter 155b for transmission, 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 WKC 178 of the abnormality detection datagram received by the receiver 158a and the receiver 158b. For example, in the case of Fig. 18B, the values of WKC 178 of the abnormality detection datagram received by the receiver 158a and the receiver 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 WKC 178 of the abnormality detection datagram received by the reception unit 158a. For example, in the case of Fig. 19B, the value of WKC 178 of the abnormality detection datagram received by the reception 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 WKC 178 values 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 control 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 control 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 control target device 121b.
[0298] In this case, the values of WKC 178 in the anomaly detection datagrams received by the receivers 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 total value of the WKC 178 values 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 total value of the received WKC 178 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 WKC 178, 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 WKC 178 of the anomaly detection datagrams received by the receivers 158a and 158b are the number of EPUs that the anomaly detection datagrams transmitted from the transmitters 155a and 155b passed through. For this reason, the values of WKC 178 of the anomaly detection datagrams received by each receiver 158 can be used to determine the control target devices 121 that can be reached from each transmitter 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 a failure in the control target device 121b occurs at the same location as in Fig. 20. In this case, the values of WKC 178 of the abnormality detection datagrams received by the receiver 158a and the receiver 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 in the control device 120 that the total number of control target devices 121 is three, the total number does not match the value of the WKC 178 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 the WKC 178, 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.
[0303] The value of WKC178 of the anomaly detection datagram received by the receiver 158a is the number of EPUs that the datagrams transmitted from the transmitter 155a passed through. On the other hand, the value of WKC178 of the anomaly detection datagram received by the receiver 158b is the sum of the number of EPUs that the datagrams transmitted from the transmitter 155a passed through and the number of EPUs that the datagrams transmitted from the transmitter 155b passed through. Therefore, based on the value of WKC178 of the datagram received by each receiver 158, it is possible to determine the control target devices 121 that are reachable from each transmitter 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, when it is determined that an abnormality has occurred in the communication path, the abnormality determination unit 163 notifies the calculation unit 150 of information related to the abnormality. 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 addition to the information notified in step S056 described in FIG. 12. 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 abnormality occurs in the communication path connecting to the control device 120> FIG. 22A is a diagram illustrating an example of a communication path when an abnormality occurs in a communication path adjacent to the control device 120 in the replication method illustrated in FIG. 18. In FIG. 22A, a path abnormality occurs between the control device 120 and the control target device 121c. When such a path abnormality occurs, the communication unit 159b detects the abnormality in the communication path, and the transmitter 155b loops back the communication frame internally without transmitting it. As a result, the result is the same as if the receiver 158b had received the data. 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 receiver 158a receives the abnormality detection datagram transmitted from the transmitter 155b as shown in Fig. 18A, and therefore the value of the WKC 178 of the abnormality detection datagram received by the receiver 158a is 0. In Fig. 22A, the value of the WKC 178 of the abnormality detection datagram is not 0, and therefore 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 the WKC 178 of the abnormality detection datagram received by the receiver 158a is 3, the abnormality determination unit 163 can determine that the communication frame transmitted from the transmitter 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 transfer 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 receiver 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 transmitter 155b, transmission from the transmitter 155b, or reception by the receiver 158b as shown in FIG. 19A, it can be determined that the communication frame was transmitted from the transmitter 155a and then received by the receiver 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 reception unit 158a is 3, the abnormality determination unit 163 can determine that the communication frame transmitted from the transmission 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] <Change in the total number of controlled devices 121 when changing the system configuration> As described above, in route redundancy, the contents of the 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 the 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 may change the total number of the control target devices 121 using the total number information when selecting the 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) The third embodiment differs from the first and second embodiments in that 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 prerequisite problem is that when using route redundancy, the route changes depending on the abnormality situation, making time synchronization difficult. Therefore, a mechanism is required that can achieve time synchronization even when an abnormality occurs, and that can 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 the same logical address is assigned to and read from a plurality of control target devices 121 after applying route redundancy as a premise of the control communication system according to the third embodiment. In Fig. 23, the transfer method shown in Fig. 19 is applied. The logical address space has a feature that when the same address is assigned to and read from a plurality of 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 respectively hold different data 0, 1, and 2. Also in FIG. 23, an abnormality has occurred in the communication path between the control target device 121a and the control target device 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.
[0318] Figures 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 Figure 23. In the control system 123 shown in Figures 24A and 24B, unlike the case of Figure 23, each control target device 121 stores correction delay information for when a path abnormality occurs according to the system configuration in a different 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 control target device is the difference between the delay when the communication path to the adjacent control target device 121 is normal and the delay when an abnormality occurs in the communication path to the adjacent control target device 121. For example, the corrected delay information held by the control target device 121a is the difference between the communication delay when a communication frame propagates from the EPU of the control target device 121a to the EPU of the control target device 121b, as shown in Fig. 19A, and the communication delay when the communication frame is returned by the EPU of the control target device 121a and then propagates to the EPU of the control target device 121b via the receiver 158a and the transmitter 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 effect of increased delay due to the path abnormality on the control target device 121 after the path abnormality point. At this time, the control device 120 changes the logical address that stores the correction delay information of each control target device 121 according to the system configuration.
[0321] 24A, the control system 123 is composed of control target devices 121a, b, and c, 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 in which the system configuration is changed and the control target device 121c is removed is shown in Fig. 24B. In Fig. 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 required to pass through the control target device 121c compared to Fig. 24A. In other words, the corrected delay information can change depending on the system configuration, as it changes between Fig. 24A and Fig. 24B.
[0323] 24B, which is composed of control target devices 121a and 121b, the control target devices 121a and 121b store compensation delay information at logical address 0x10000004. Ca2 is the compensation delay information stored in the control target device 121a, and Cb2 is the compensation delay information stored in the control target device 121b. In the configuration shown in FIG. 24B, the control target device 121c is removed, and therefore the control target device 121c does not store compensation 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, it is possible to obtain the same effects as those described in the first and second embodiments. In addition, it is possible to immediately change the compensation delay information, especially when changing the system configuration. For comparison, if a single logical address is used, it is necessary to access a specific address in each control target device 121 to update the compensation 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 compensation 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 stage of setting up the control system 123. Therefore, when changing the system configuration, it is possible to quickly change the system configuration by simply 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, or 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. [Explanation of symbols]
[0328] 120 Control device (control communication device) 121 Controlled Devices 123 Control System 153 Datagram Generation Unit 159 Communications Department 160 Control target device selection unit 161 Datagram Generation Information Modification Unit 162 Control system configuration information storage unit 163 Abnormality determination section 178 WKC
Claims
1. a control communication device having a communication unit for transmitting packets including control data; a plurality of devices communicably connected to a communication port included in the communication unit and operating in accordance with the received packet; A control communication system having: the packet includes a packet data area in which the control data is selected and placed, and is transmitted from the communication unit to the device connected to the communication unit; The control communication device generating the control data based on communication control information related to transmission and reception of the control data; maintaining a correspondence relationship between the device and the control data; When the state of the device changes, the communication control information related to the device is changed based on the correspondence relationship. Control communication system.
2. the control data includes access details to a virtual area shared in the control communication system; 2. The control communication system according to claim 1.
3. the communication control information includes an expected value when a verification parameter included in the control data is received by the communication unit of the control communication device; the verification parameter is determined based on the number of the devices that process the control data.
2. The control communication system according to claim 1.
4. the communication control information includes an address of the virtual area; 3. The control communication system according to claim 2.
5. the communication control information includes a size of the control data; 2. The control communication system according to claim 1.
6. the correspondence relationship includes either or both of a correspondence between the device and the virtual area to which an address space of the device is allocated, or a correspondence between the control data and the virtual area accessed by the control data; 3. The control communication system according to claim 2.
7. the control communication device retransmits a packet including the control data when the expected value and the value of the verification parameter at the time of receiving the control data do not match; 4. The control communication system according to claim 3.
8. the control communication device has a plurality of the communication units, When the control communication device receives the packet, it performs at least one of the following: determining whether or not there is an abnormality in the communication path to the device, identifying the device adjacent to the communication path, and retransmitting the packet including the control data from one of the plurality of communication units, based on the expected value set for the communication unit that received the packet and the value of the verification parameter of the control data included in the packet.
4. The control communication system according to claim 3.
9. the communication control information includes the total number of the devices; when receiving the packet, the control communication device does not retransmit the packet including the control data if the value of the verification parameter of the control data included in the packet is equal to the total number; 9. The control communication system according to claim 8.
10. determining communication delay correction information for when an abnormality occurs in a communication path between a first device and an adjacent second device based on a configuration of the control communication system; storing the communication delay correction information corresponding to different configurations of the control communication system in different virtual areas; the correspondence relationship includes a correspondence between the device and an address of the virtual area storing the communication delay correction information according to a configuration of the control communication system, the communication control information includes an address of the virtual area in which the communication delay correction information is stored, When a configuration of the control communication system is changed, the control communication device changes, based on the correspondence relationship, 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.
5. The control communication system according to claim 4.
11. aggregating and allocating the address space of the device to be changed to the control communication system on the virtual area; 5. The control communication system according to claim 4.
12. the control communication device sets a period during which processing based on the verification parameter when the packet is received is disabled while the state of the device is being changed.
9. The control communication system according to claim 7 or 8.
13. the correspondence relationship includes a correspondence relationship between the devices and the control data in a maximum configuration that can be achieved when the control communication system is in operation; The control communication system according to claim 1 .
14. the correspondence relationship includes a connection order of the devices; the control communication device verifies the connection order of the devices based on the correspondence relationship when the state of the devices changes. The control communication system according to claim 1 .
15. the control communication device has a plurality of the communication units, The communication control information is defined for each of the communication units. The control communication system according to claim 1 .
16. A cause of a change in the system configuration in the control communication system is associated with the device whose state is to be changed. The control communication system according to claim 1 .
17. the control communication device periodically transmits the control data for detecting a change in the system configuration of the control communication system, and automatically detects a change in the system configuration of the control communication system; 17. The control communication system according to claim 16.
18. the correspondence relationship associates the plurality of devices as a group with the control data; The control communication system according to claim 1 .
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
Communication control device
WO2018105047A1