Communication resource planning method, communication resource planning device, and network system for control
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HITACHI HIGH TECH CORP
- Filing Date
- 2025-02-03
- Publication Date
- 2026-08-06
Smart Images

Figure JP2025003434_06082026_PF_FP_ABST
Abstract
Description
Communication Resource Planning Method, Communication Resource Planning Device, and Control Network System
[0001] The present invention relates to a communication resource planning method, a communication resource planning device, and a control network system.
[0002] A control system that supports social infrastructure is composed of sensors, controllers, and actuators. It acquires the state of a physical object with a sensor and inputs it to the controller. The controller calculates a control command value for instructing the actuator and the actuator acts on the physical object based on the command value. For example, such a series of processes are repeatedly performed periodically to execute desired control.
[0003] Such control systems are widely used in various industrial fields such as factory automation (FA), process automation (PA) in chemical plants, semiconductor manufacturing equipment, inspection equipment, medical devices, distributed control systems (DCS), power system control systems, power generation plants, water and sewage treatment systems, and steel control systems.
[0004] With the large-scale and advanced development of control systems, and further the progress of industrial IoT (Internet of Things), higher communication speed, shorter control communication cycle, and larger communication volume are required. In addition, in order to respond to changes in requirements and performance improvement after the system starts operating, flexible changes in the system configuration may be necessary.
[0005] To address these needs, the introduction of Ethernet® into control networks has enabled higher communication capacity, faster communication speeds, and more flexible network configurations. However, even in control systems using Ethernet, as the number of subcontrollers increases, the management of communication packets becomes more complex, and efficient data management becomes necessary. In particular, if the allocation of control data to each subcontroller or the placement of communication objects within communication packets is not appropriate, the overall system performance may deteriorate. Therefore, there is a need for technology that can meet the demands for both improved communication performance and changes in system configuration.
[0006] As an example related to such technology, Patent Document 1 discloses a communication device comprising "a slave station to which a controlled device is connected, or a master station that controls a controlled device by communicating with a slave station, the device comprising: a parameter holding unit that holds predetermined communication parameters according to the operating states that the controlled device can take; and a transmitting unit and a receiving unit that identify the operating state of the controlled device based on the content of the previous communication with the opposing communication device, and communicate with the opposing communication device using communication parameters corresponding to the identified operating state."
[0007] Japanese Patent Publication No. 2009-17206
[0008] One possible technique for this is to adjust the amount of communication resources available to subcontrollers by adjusting the length and period of communication frames. In this case, the data transmission and reception capacity is determined by the length and period of communication frames transferred over the network, as well as the time division width. By dividing these communication frames into capacities that can be handled by the communication resources of each subcontroller and associating them with their respective allocation destinations, the allocation of communication resources is achieved.
[0009] However, challenges remain in simultaneously improving communication performance and adapting to changes in system configuration. Specifically, the method of allocating communication resources is fixed, making dynamic resource allocation that takes into account network transmission capacity limitations difficult. As a result, the system lacks scalability and flexibility, and efficient communication management becomes difficult, especially when the configuration of multiple control devices changes.
[0010] To accommodate changes in system configuration, it is usually necessary to reallocate communication resources. However, this method degrades communication performance due to the increased complexity of control associated with the dynamic management of communication resources, and the reduced real-time capabilities resulting from the planning and updating of communication resources.
[0011] This invention has been made in view of these problems, and aims to provide a communication resource planning method, a communication resource planning device, and a control network system that can improve communication performance by improving communication efficiency and suppressing communication overhead, and that can maintain and improve operating rates and ensure reliability in response to changes in device configuration.
[0012] The present invention includes several means for solving at least part of the above problems, one example being as follows: A communication resource planning method for planning the arrangement in the logical address space of a plurality of communication objects defined for each of a plurality of control devices controlled by each of a plurality of subcontrollers connected to a main controller, and used when each of the subcontrollers communicates control data relating to each of the control devices with the main controller, wherein, based on a communication object configuration showing a combination of two or more of the communication objects defined by each of a plurality of control patterns showing a series of operation patterns of one or more of the control devices, one communication object is selected from all the communication objects included in all the communication object configurations based on a predetermined criterion, and the one communication object is placed in the logical address space, each of the other communication objects is selected sequentially based on the predetermined criterion, and each of the sequentially selected communication objects is placed in the logical address space such that the one communication object is located approximately in the center.
[0013] According to the present invention, it is possible to provide a communication resource planning method, a communication resource planning device, and a control network system that improve communication performance by improving communication efficiency and suppressing communication overhead, and that can maintain and improve operating rates and ensure reliability in response to changes in the device configuration.
[0014] Other issues, configurations, and effects not mentioned above will be clarified by the following description of the embodiments.
[0015] This figure shows an example of the configuration of the control network system in Example 1. This figure shows an example of the configuration of the communication resource planning device in Example 1. This figure shows an example of the configuration of the main controller in Example 1. This figure shows an example of the configuration of the subcontroller in Example 1. This figure shows an example of the configuration of a communication packet in Example 1. This flowchart shows an example of the planning process by the communication resource planning device in Example 1. This figure shows an example of system configuration information in Example 1. This figure shows an example of the communication object configuration of the control pattern in Example 1. This figure shows an example of input data in Example 1. This figure shows an example of the placement of communication objects by the resource planning unit in Example 1. This figure shows another example of the placement of communication objects by the resource planning unit in Example 1. This flowchart shows an example of the execution file transmission process by the main controller and the communication resource update process by the subcontroller in Example 1. This figure shows an example of the configuration of the control system in Example 2. This figure shows an example of the change of communication objects used in the control pattern when the subcontroller is removed in Example 2. This figure shows an example of the configuration information of the subcontroller in Example 3.
[0016] The embodiments of the present invention will be described below with reference to the drawings. The embodiments are illustrative examples for explaining the present invention, and have been omitted and simplified as appropriate for clarity of explanation. The present invention can also be carried out in various other forms. Unless otherwise specified, each component may be singular or plural.
[0017] The position, size, shape, and extent of each component shown in the drawings may not represent the actual position, size, shape, and extent in order to facilitate understanding of the invention. Therefore, the present invention is not necessarily limited to the position, size, shape, and extent disclosed in the drawings. When there are multiple components having the same or similar function, they may be described using the same reference numeral with different subscripts. Furthermore, when it is not necessary to distinguish between these multiple components, the subscripts may be omitted in the description.
[0018] In the examples, the processes performed by executing a program may be described. Here, the computer executes the program using a processor (e.g., CPU, GPU) and performs the processing defined by the program using memory resources (e.g., memory) and interface devices (e.g., communication ports). Therefore, the main entity performing the processing by executing the program may be the processor. Similarly, the main entity performing the processing by executing the program may be a controller, device, system, computer, or node having a processor.
[0019] The main component of the processing performed by executing the program can be an arithmetic unit, and may include dedicated circuits for specific processing. Here, dedicated circuits include, for example, FPGAs (Field Programmable Gate Arrays), ASICs (Application Specific Integrated Circuits), and CPLDs (Complex Programmable Logic Devices).
[0020] The program may be installed on the computer from the program source. The program source may be, for example, a program distribution server or a storage medium readable by the computer. If the program source is a program distribution server, the program distribution server includes a processor and storage resources to store the program to be distributed, and the processor of the program distribution server may distribute the program to other computers. In addition, in the embodiment, two or more programs may be implemented as one program, or one program may be implemented as two or more programs.
[0021] (System Example) Figure 1 is a diagram showing an example of the configuration of the control network system in Embodiment 1. The outline of the control network system 10 will be described below using Figure 1. In Figure 1, the control network system 10 comprises a control system 100 and a communication resource planning device 101. The control system 100 comprises a main controller 102 and one or more subcontrollers 103 (subcontrollers 103-1, 103-2, ... 103-n). The communication resource planning device 101 and the main controller 102 are connected by a network 105, and each subcontroller 103 is daisy-chained to the main controller 102 by a control network 104 (control network 104-1, 104-2, ... 104-n).
[0022] Figure 1 shows an example in which the control network system 10 comprises only one control system 100, but the control network system 10 may comprise multiple control systems 100. In this case, the communication resource planning device 101 may be connected to multiple main controllers 102 within the multiple control systems 100 via the network 105, or each of the multiple communication resource planning devices 101 may be connected to the main controller 102 of each control system 100.
[0023] Furthermore, the connections between the communication resource planning device 101, the main controller 102, and the multiple sub-controllers 103 include not only physical connections via the control network 104 and network 105, but also logical connections such as communication protocols and configuration software. As an example of a logical connection, the communication resource planning device 101 may be installed as a software component on the main controller 102 or sub-controllers 103. Other examples include connections via USB cables, connections based on JTAG (Joint Test Action Group) specifications, and wireless communication such as wireless LAN.
[0024] Alternatively, the communication resource planning device 101 may not be physically connected to the control system 100, the main controller 102, or each sub-controller 103. Instead, it may store the output and generated data of the communication resource planning device 101 on a removable external storage medium, and then attach this external storage medium to a target device such as the main controller 102 or sub-controller 103 to transmit the output and generated data. Examples of such external storage media include USB memory, CDs, DVDs, Blu-ray®, CompactFlash®, and floppy disks (FD).
[0025] The control system 100 is, for example, a semiconductor manufacturing device, a semiconductor inspection device, a medical device such as a clinical inspection device, a control system such as a DCS for FA and PA, a remote control system via a wireless network, a monitoring and protection control system in the power sector, industrial equipment, an in-vehicle system, a control system in construction machinery and railway vehicles, a railway ground signaling system, or an in-aircraft control system. Alternatively, the control system 100 may be a component of these devices or systems. For example, it may be an etching device or sputtering device in a semiconductor manufacturing device, a manufacturing line in an FA system, a device that constitutes a DCS, or a component of an in-vehicle system or an aircraft control system.
[0026] The communication resource planning device 101 plans the allocation of one or more communication objects to one or more communication resources owned by each subcontroller 103, based on control patterns input from an external source, in order to satisfy the required conditions. The required conditions include, for example, the number of available communication resources and whether or not communication resources can be redistributed during system operation. The above requirements and control patterns are predetermined based on the configuration of the control system 100, and are input, for example, through input means provided by the communication resource planning device 101, by users of the control system 100, or from a higher-level device connected to the communication resource planning device 101 via the network 105 or other connection means. The allocation of communication resources to communication objects is planned by a planning algorithm executed by the communication resource planning device 101 in order to satisfy the input requirements. The communication objects, control patterns, and specific planning processes (procedures) will be described later.
[0027] The communication resource planning device 101 is configured, for example, by installing software necessary to realize the processing, functions, and operation of the communication resource planning device 101 (such as the communication resource allocation plan described above) on a general-purpose information processing device such as a personal computer (PC) or a server (or as software installed on the information processing device). The communication resource planning device 101 and the main controller 102 do not need to be connected at all times; they may be connected only while the planning results are being reflected to each sub-controller 103 via the main controller 102. Furthermore, the communication resource planning device 101 may operate not only in the online state when the control system 100 is running, but also in the offline state before the control system 100 is started.
[0028] As described above, the main controller 102 is connected to multiple sub-controllers 103 via the control network 104 and is responsible for sending and receiving control data with each sub-controller 103 and controlling the operation of each sub-controller 103. The control data includes, for example, control command values for devices controlled by each sub-controller 103, such as sensors and actuators, measured values of the sub-controllers 103, I / O information of sensors, and various setting values of the sub-controllers 103, as will be described later.
[0029] Furthermore, in order to optimize the communication resources of the entire system, the main controller 102 assigns one or more communication objects to one or more communication resources of each subcontroller 103 according to the allocation planned by the communication resource planning device 101. Specifically, the main controller 102 transmits control data including the setting values for each communication resource of each subcontroller 103 based on the allocation planned by the communication resource planning device 101. When each subcontroller 103 receives the control data including the setting values for each communication resource, it sets the received setting values for each communication resource and updates the allocation for each communication resource. The specific update process (procedure) will be described later.
[0030] As described above, the main controller 102 exchanges control data such as sampling data, control commands, and status signals with each sub-controller 103. It can also be connected to a higher-level device (not shown) and exchange control data between the higher-level device and each control system, such as a controller in semiconductor manufacturing equipment or semiconductor inspection equipment, a central control unit of a DCS (Distributed Control System), or a protection control unit of a power system. Alternatively, it can exchange control data with other main controllers 102 in other control systems 100 via a higher-level device. In this case, multiple data within the same control system may be stored in a communication packet. Furthermore, the main controller 102 may support software virtualization technology or software container technology, allowing applications or operating systems to be virtualized and managed as containers.
[0031] As the main controller 102, for example, a dedicated controller, industrial PC, control computer, DCS controller, MEC (Multi-access Edge Computing) device, computer cloud or server, SCADA (Supervisory Control and Data Acquisition) server, PLC (Programmable Logic Controller), IED (Intelligent Electronic Device), protection control device, etc. can be used, but are not limited to these. Any information processing device capable of performing the above processing, functions, and operations, or software installed on any information processing device, may also be used.
[0032] Each subcontroller 103 is connected to, mounted on, or implemented (hereinafter referred to as "implemented, etc.") the control system 100 or the devices, machines, etc. that constitute the control system 100 (hereinafter referred to as "devices, etc."), and is connected to one or more sensors, actuators, or other devices (hereinafter referred to as "control devices") provided by the control system 100 or the devices, etc., and performs control, setting, etc. of each control device and its own communication resources in response to control commands received from the main controller 102 via the control network 104. Each subcontroller 103 also has the function of acquiring the status and information of each control device and transmitting it to the main controller 102 via the control network 104. The control devices to which each subcontroller 103 is connected (controlled) (hereinafter referred to as "control devices of subcontroller 103") may have only the function of inputting information, such as a sensor, or only the function of outputting information, such as an actuator, or may have both input and output functions.
[0033] The subcontroller 103 is configured as software installed on dedicated hardware (e.g., ICs (Integrated Circuits), ASICs, FPGAs, and other electronic components) or a general-purpose information processing device. For example, it can be implemented in control systems 100 or other devices, including the devices, systems, or their components as exemplified above, as well as in industrial robots such as mobile robots, humanoid robots, and robot arms, AGVs (Automated Guided Vehicles), AMRs (Autonomous Mobile Robots), autonomous mobile objects or remote-controlled mobile objects, chip mounters, processing equipment, machine tools, etc. The subcontroller 103 can also be connected to and controlled as a control device, for example, motors, inverters, servo amplifiers, servo motors in manufacturing equipment, power equipment such as circuit breakers and disconnectors, and various sensors (encoders, temperature sensors, pressure sensors, etc.). However, it is not limited to these, and may be any other devices or control devices.
[0034] Furthermore, if the subcontroller 103 is configured as an independent device (for example, if it is implemented as dedicated hardware or software in a device separate from the control system 100 or other devices), the subcontroller 103 can be, for example, a dedicated controller, an industrial PC, a control computer, a DCS controller, a SCADA device, a PLC, a smartphone or communication device equipped with a wireless communication interface, an IED (Intelligent Electronic Device), an MU (Merging Unit), a protection control device, etc., but is not limited to these, and may be any information processing device capable of performing the above-mentioned processing, functions, operations, etc.
[0035] The control network 104 is a network connecting the main controller 102 and the sub-controller 103, and in this embodiment, it is mainly an industrial network (also called a field network or fieldbus). As the control network 104, for example, it is possible to use a network based on IEEE 802.3 (Ethernet) including control networks such as EtherCAT (registered trademark), IEC 61784, and TSN (Time Sensitive Networking), or a core network in a wireless network such as 4G, 5G, or 6G. Furthermore, as the communication method (also called a communication standard or communication protocol) of the control network 104, it is possible to use various wired communication methods such as CAN (Controller Area Network (registered trademark)), RS-232C, and USB (Universal Serial Bus (registered trademark)), or various wireless communication methods such as Bluetooth (registered trademark). Regarding the IEEE 802.3 standard mentioned above, it is possible to use standards that support communication speeds such as 100 Mbps, 1 Gbps, multi-gigabit Ethernet, and 10 Gbps, as well as jumbo frames.
[0036] Furthermore, as higher-level protocols in the protocol stack, it is possible to use communication protocols based on OPC UA (Unified Architecture), DDS (Data Distribution Service), Service Based Interface (SBI), REST API, HTTP / 2, Open API, JSON (JavaScript Object Notation) data, IEC 61850, etc., and these protocols may also be layered. For example, it is possible to apply the OPC UA standard to the contents of the data area on the TSN. (Example of EtherCAT application) In the following description of this embodiment, an example in which the above-mentioned EtherCAT is applied as the control network 104 will be described.
[0037] EtherCAT is an industrial network based on Ethernet and has the following characteristics: • The main controller 102 is the main device of EtherCAT, and each subcontroller 103 is a subdevice of EtherCAT. Communication packets transmitted from the main controller 102 pass through each subcontroller 103 in sequence and return to the main controller 102. • The connection between the main controller 102 and each subcontroller 103 (also called the network topology) can be a line type (daisy-chain connection) as shown in Figure 1, or it can be a star type or a ring type. In a star type, relay devices adapted to EtherCAT are used as appropriate, and the subcontrollers 103 are connected via these relay devices. In a ring type, the subcontrollers 103 are connected in a ring.
[0038] In the control system 100 (also called the Ethernet system) that applies Ethernet as described above, the main controller 102 manages Ethernet communication with each sub-controller 103 and controls the operation of the entire system. For example, it performs tasks such as sequence control, motion control, and data acquisition in manufacturing lines and process automation.
[0039] Each sub-controller 103 is a device that receives control commands from the main controller 102 and executes specific control tasks, such as power supply control and temperature sensor data collection. It collects data from the control unit in real time and performs control based on that data. Each sub-controller 103 sends and receives necessary control data to and from the main controller 102 via Ethernet communication through the control network 104.
[0040] Although Figure 1 shows only the main controller 102 and multiple sub-controllers 103 in the Ethernet system, other Ethernet-compatible devices may also be connected via the control network 104.
[0041] In the Ethernet system, each subcontroller 103 possesses one or more communication resources, which are various management functions for communication with the main controller 102, including the FMMU (Fieldbus Memory Management Unit) and the sink manager. The FMMU plays a role in efficiently managing control data in Ethernet communication by logically arranging (hereinafter referred to as mapping) communication objects in the logical address space. The logical address space is a mechanism that, similar to the logical address space in general information processing devices, integrates or links the memory spaces of multiple memories (physical memories) possessed by the main controller 102 and each subcontroller 103 of the control system 106 to treat them as a single continuous memory space, enabling efficient data access between the main controller 102 and each subcontroller 103. The sink manager also plays a role in controlling the synchronization and access of communication objects mapped to the logical address space between the main controller 102 and each subcontroller 103.
[0042] Here, a communication object is a data unit exchanged between the main controller 102 and each sub-controller 103 regarding the control equipment of each sub-controller 103. In other words, it defines the data (including control data) that the main controller 102 and each sub-controller 103 exchange in a single communication, and the data size differs for each control equipment. For example, if a device on which a sub-controller 103 is implemented is equipped with a sensor and an actuator as control equipment, and the sub-controller 103 is connected to and controls them, then a communication object (let's call them communication objects X and Y) is defined for each of the sensor and actuator. The main controller 102 uses these communication objects X and Y to send control data (control commands, set values (various parameters), etc.) for the sensor and actuator to the sub-controller 103, and the sub-controller 103, in response to the control command, uses these communication objects X and Y to send control data (measured values of the sensor, state information of the actuator, etc.) for the sensor and actuator to the main controller 102. In this way, communication (exchange) of control data regarding each control equipment using each communication object takes place between the main controller 102 and the sub-controller 103. Furthermore, communication objects are assigned to communication resources in a one-to-one or many-to-one relationship (i.e., one or more communication objects are assigned to one communication resource).
[0043] Therefore, the FMMU places the communication object assigned to it from among the one or more communication objects defined for each control device of the subcontroller 103 in which it resides (hereinafter, the one or more communication objects defined for each control device of the subcontroller 103 are referred to as communication objects corresponding to the subcontroller 103) into the logical address space, and maintains the correspondence between the storage location (physical address) in the physical memory of the subcontroller 103 where the communication object is actually stored and the placement location (logical address) in the logical address space (hereinafter referred to as mapping information). As a result, the main controller 102 can specify the communication object by logical address in a control command, and the subcontroller 103 can execute processing related to the specified communication object in physical memory by the FMMU converting the specified logical address to a physical address.
[0044] The number of control devices of each sub-controller 103 (the number of control devices included in the device in which the sub-controller 103 is implemented or the like) is different for each sub-controller 103. Therefore, the number of communication objects corresponding to each sub-controller 103 is also different for each sub-controller 103. On the other hand, the number of communication resources owned by each sub-controller 103 is also different for each sub-controller 103 (of course, there may be the same number). Therefore, the communication resource planning device 101 plans the arrangement in the logical address space of each communication object corresponding to each sub-controller 103 and the allocation of the communication objects corresponding to each sub-controller 103 to the communication resources owned by each sub-controller 103 (which communication object is allocated to which communication resource). The parameter set in each communication resource and the set value of the operation mode (hereinafter referred to as the set parameter) are determined according to the planned arrangement and allocation. The set parameter is input from the communication resource planning device 101 to the main controller 102 via the network 105, and is set by the main controller 102 for each communication resource of each sub-controller 103 as will be described later. Incidentally, the above planning by the communication resource planning device 101 may be executed as the generation, editing, and management of EtherCAT Subdevice Information (ESI) and EtherCAT Network Information (ENI) in EtherCAT. (Configuration of Communication Resource Planning Device) FIG. 2 is a diagram showing an example of the configuration of the communication resource planning device in the first embodiment. In FIG. 2, the communication resource planning device 101 includes a system configuration information 201, a request object selection unit 202, an input cooperation unit 203, a resource planning unit 204, and an execution process generation unit 205.
[0045] The system configuration information 201 is a database that holds configuration information for multiple subcontrollers 103 connected to the control network 104. For example, it contains information such as network topology, type of control equipment, connection status, and corresponding communication objects. This information is pre-configured as the system configuration information 201 (or input and set in the system configuration information 201) by a user or a higher-level device when the control network system 10 is constructed or when the communication resource planning device 101 is connected to the control system 100. The system configuration information 201 may be configured as a dedicated database system connectable to the communication resource planning device 101 or as data storage on the cloud. Alternatively, the system configuration information 201 may be stored as a system file in the memory of the main controller 102 or subcontrollers 103.
[0046] The request object selection unit 202 selects multiple communication objects necessary for the plan based on control patterns input from an external source. Information on each communication object is selected and extracted from the system configuration information 201.
[0047] Here, a control pattern refers to a series of operation patterns of one or more control devices for realizing a specific operation or movement of the control system 100 or device, and defines a combination of a series (two or more) of control commands (control data) for one or more control devices, i.e., a combination of a series (two or more) of communication objects (hereinafter referred to as a communication object configuration), which is given from the main controller 102 to one or more sub-controllers 103. The control pattern differs depending on the various operation modes of the control system 100 or device, a specific scenario (a series of system operations), and the device configuration. For example, a different control pattern, i.e., a different communication object configuration, is set for each different operation mode such as normal operation mode, emergency stop mode, and maintenance mode, or for each individual operation in the device (for example, transport, positioning, and processing in a processing device). These control patterns are set in advance by the user or a higher-level device and are input to the communication resource planning device 101 during planned execution or at an appropriate timing.
[0048] The input cooperation unit 203 generates input data necessary for the plan based on information regarding a plurality of communication objects selected by the request object selection unit 202 from the system configuration information 201. Note that the input data is, for example, the correspondence between each selected communication object and each sub-controller 103, the sharing number of each communication object, the data size of each communication object, the type of each communication object (the type of the control device in which each communication object is defined), the input / output direction of each communication object (the direction in which information input / output of the control device in which each communication object is defined is possible), and the like. The sharing number of a communication object is data indicating how many control patterns (whether shared) each communication object is commonly used in, and the number of control patterns using the same communication object is defined as the sharing number.
[0049] The resource planning unit 204 executes the plan based on the input data generated by the input cooperation unit 203, and determines and outputs setting parameters according to the plan result. In the plan, efficient resource allocation is performed in consideration of elements such as the bandwidth, delay, and reliability of the control network 104. Note that one resource planning unit 204 may be configured to manage the allocation of a plurality of communication resources, or one resource planning unit 204 may be configured to manage the allocation of at least one communication resource, and a plurality of resource planning units 204 may be provided. For example, FIG. 2 shows an example in which two resource planning units 204-1 and 204-2 are provided in the communication resource planning device 101.
[0050] The execution process generation unit 205 generates an execution file necessary to set the setting parameters output from the resource planning unit 204 to each communication resource of each sub-controller 103. The generated execution file is input to the main controller 102 and transmitted to each sub-controller 103.
[0051] The execution processing generation unit 205 is implemented in the communication resource planning device 101 as dedicated hardware or as a software component. However, it is not limited to this, and the dedicated hardware or software component of the execution processing generation unit 205 may be implemented in, for example, the main controller 102 or each sub-controller 103. (Communication Packet Configuration) In the Ethernet system, Ethernet communication between the main controller 102 and each sub-controller 103 is performed by the communication packets shown in Figure 5. Figure 5 is a diagram showing an example of the configuration of a communication packet in Embodiment 1. In Figure 5, the communication packet 501 consists of an Ethernet header 502, Ethernet data 503, and an FCS (Frame Check Sequence) 504. The Ethernet data 503 consists of an Ethernet header 505 and a plurality of datagrams 506 (datagrams 506-1, 506-2, ..., 506-n). Each datagram 506 consists of a datagram header 507, a data area 508, and a WKC (Working Counter) 509.
[0052] The Ethernet header 502, Ethernet data 503, and FCS (Frame Check Sequence) 504 are the same as those of a typical Ethernet frame and will not be explained. The Ethernet CAT header 505 contains information such as the total length of multiple datagrams 506. Each datagram 506 is the basic unit of data transmitted and received between the main controller 102 and each sub-controller 103. The datagram header 507 contains information such as the type of control command from the main controller 102, the specified address information, and the length of the data area 508. The data area 508 contains control data transmitted and received with the main controller 102. The WKC 509 is a numerical value that indicates whether or not processing based on the control data has been executed (successfully) in each sub-controller 103, and the value is changed (updated) by each sub-controller 103 according to predetermined rules, depending on the execution status (success or failure, or completed / incomplete) of the processing based on the control data.
[0053] In this embodiment, as Ethernet communication using the above-mentioned communication packet 501, the main controller 102 designates individual subcontrollers 103, and communication takes place between the designated one or more subcontrollers 103 and the main controller 102 (hereinafter referred to as subcontroller communication), and the main controller 102 designates a specific area in the logical address space, and communication takes place between the main controller 102 and one or more subcontrollers 103 corresponding to that one or more communication objects using one or more communication objects located in the designated specific area (hereinafter referred to as logical address communication).
[0054] In subcontroller communication, each datagram 506 in the communication packet 501 is associated with each designated subcontroller 103, the datagram header 507 of each datagram 506 specifies the address indicating the associated subcontroller 103, and the data area 508 stores the control data transmitted and received by that subcontroller 103.
[0055] On the other hand, in logical address communication, a logical address indicating a specific area in the logical address space is specified in the datagram header 507 of one datagram 506 in the communication packet 501, and control data using one or more communication objects located in that specific area is stored in the data area 508. Therefore, in this case, the one datagram 506 is common to each subcontroller 103. (Example of main controller configuration) Figure 3 is a diagram showing an example of the configuration of the main controller in Embodiment 1. In Figure 3, the main controller 102 includes a calculation unit 301, a datagram information storage unit 302, a communication packet generation unit 303, a transmission unit 304, a communication frame decomposition unit 305, and a reception unit 306. In the following description, the case in which the main controller 102 sets the planning result (executable file) by the communication resource planning device 101 to each subcontroller 103 will be used as an example.
[0056] The calculation unit 301 generates a datagram 506, which is a component of the communication packet 501, based on the executable file input from the execution processing generation unit 205.
[0057] The datagram information storage unit 302 stores the datagram 506 generated by the calculation unit 301. This datagram information storage unit 302 plays a role in streamlining the management and reuse of the datagram 506.
[0058] The communication packet generation unit 303 generates a communication packet 501 using the datagram 506 stored in the datagram information storage unit 302. The data area 508 of the datagram 506 in this communication packet 501 stores a command to set or update communication parameters for each subcontroller 103 and an executable file to set them.
[0059] The transmitting unit 304 transmits the communication packets 501 generated by the communication packet generation unit 303 to each subcontroller 103 via the control network 104.
[0060] The receiving unit 306 receives the communication packet 501, in which the datagram 506 has been updated in each subcontroller 103, as response data.
[0061] The communication frame decomposition unit 305 analyzes the communication packet 501 received by the receiving unit 306 and decomposes the Ethernet data 503 portion of the communication packet 501 into a datagram 506. Subsequently, the datagram 506 decomposed by the communication frame decomposition unit 305 is stored in the datagram information storage unit 302, and the datagram 506 is checked and verified by the calculation unit 301. This allows the calculation unit 301 to obtain or determine the success or failure of feedback from each subcontroller 103, that is, information on the success or failure of the execution file settings in each subcontroller 103. If the settings in all or any of the subcontrollers 103 fail, the calculation unit 301 issues a command to the communication packet generation unit 303 to retransmit the communication packet 501, and the communication packet 501 is retransmitted. At this time, the datagram 506 stored in the datagram information storage unit 302 is reused.
[0062] In addition, if the plan results are not set as described above, the calculation unit 301 will autonomously or based on commands from a higher-level device, perform the same operations as described above periodically, at specific or arbitrary timings, and accordingly, the datagram information storage unit 302, communication packet generation unit 303, transmission unit 304, reception unit 306, and communication frame decomposition unit 305 will also perform the same operations as described above. In this case, the calculation unit 301 will refer to one or more datagrams 506 decomposed by the communication frame decomposition unit 305 to obtain information such as feedback from each or a specific subcontroller 103, the status of the devices on which each or a specific subcontroller 103 is implemented, and the connection status of each or a specific subcontroller 103 to the control network 104.
[0063] Furthermore, if each subcontroller 103 is functioning correctly (for example, the above executable file is correctly configured in each subcontroller 103), then in the case of subcontroller communication, the contents of each datagram 506 corresponding to each subcontroller 103 in the communication packet 501 are updated as described above, and in the case of logical address communication, the contents of one datagram 506 (specifically, the contents of the data area 508 and the value of WKC 509) are updated and returned. On the other hand, if any of the subcontrollers 103 is abnormal (for example, the above executable file is not configured in each subcontroller 103 (configuration failed)), then in the case of subcontroller communication, the contents of the datagram 506 corresponding to that abnormal subcontroller 103 in the communication packet 501 are not updated at all for that abnormal subcontroller 103 (specifically, neither the contents of the data area 508 nor the value of WKC 509 are updated) and returned. If it is determined that a particular subcontroller 103 is malfunctioning by referring to the datagram 506, the calculation unit 301 issues a command to the communication packet generation unit 303 to retransmit the communication packet 501, and the transmission unit 304 retransmits the communication packet 501.
[0064] Furthermore, in addition to the normal communication described above, the main controller 102 may periodically or irregularly send communication packets 501 (hereinafter referred to as status confirmation packets) to check the status of each subcontroller 103. These status confirmation packets also enable the acquisition and determination of the status of each subcontroller 103. (Example of subcontroller configuration) Figure 4 shows an example of the configuration of a subcontroller in Embodiment 1. The configuration example shown in Figure 4 is common to each subcontroller 103 in Figure 1. In Figure 4, the subcontroller 103 includes a receiving unit 401, a transmitting unit 402, one or more communication resources 403, a subcontroller control unit 404, and a subcontroller startup information storage unit 405. Figure 4 shows an example in which the subcontroller 103 has four communication resources 403, but it is not limited to this.
[0065] The receiving unit 401 receives the communication packet 501 from the main controller 102 and forwards it to the subcontroller control unit 404.
[0066] The transmitting unit 402 transmits the communication packet 501, whose contents have been updated by the subcontroller control unit 404, to the main controller 102 or other subcontroller 103 as response data.
[0067] Each communication resource 403 consists of an FMMU and a sync manager, as described above.
[0068] The subcontroller control unit 404 executes processing based on the control data contained in the data area 508 of the datagram 506 of the communication packet 501 received by the receiving unit 401 (the datagram 506 corresponding to the subcontroller 103 in the case of subcontroller communication, or a specific datagram 506 in the case of logical address communication). For example, if the data area 508 contains a setting or update command for the communication resource 403 and an executable file as described above, the subcontroller control unit 404 executes the executable file, sets or updates the parameters of each communication resource 403 stored in the subcontroller startup information storage unit 405, and updates each communication resource 403 that is currently in operation. Furthermore, if the control data includes control commands for control equipment, such as a request for sensor data or a command value for an actuator, the subcontroller control unit 404 acquires data from the sensor targeted by the control command or operates the actuator targeted by the control command according to the command value among the control equipment of the subcontroller 103. After executing such processing, the subcontroller control unit 404 updates the contents of the datagram 506. Specifically, the subcontroller control unit 404 updates the contents of the data area 508, for example, by including the acquired data in the control data, and also changes the value of WKC 509 based on predetermined rules. The subcontroller control unit 404 updates the contents of the datagram 506 in this way and sends the communication packet 501 to the transmission unit 402. As described above, the transmission unit 402 transmits the communication packet 501 to the main controller 102 or other subcontrollers 103.
[0069] As described above, the subcontroller startup information storage unit 405 stores the parameters of each communication resource 403. This makes it possible to restore the settings of the communication resource 403 to their state before the restart, even when the subcontroller 103 is restarted. (Example of planning process of the communication resource planning device 101) A specific example of the planning process (planning algorithm) by the communication resource planning device 101 shown in Figure 2 will be explained using Figures 6 to 11. Figure 6 is a flowchart showing an example of the planning process by the communication resource planning device in Embodiment 1, Figure 7 is a diagram showing an example of system configuration information in Embodiment 1, Figure 8 is a diagram showing an example of the communication object configuration of the control pattern in Embodiment 1, Figure 9 is a diagram showing an example of input data in Embodiment 1, Figure 10 is a diagram showing an example of the arrangement of communication objects by the resource planning unit in Embodiment 1, and Figure 11 is a diagram showing another example of the arrangement of communication objects by the resource planning unit in Embodiment 1.
[0070] In Figure 6, first, multiple control patterns are input to the request object selection unit 202 from an external source, and in S601, the request object selection unit 202 selects the information of the communication object used for each control pattern from the information of the communication object corresponding to each subcontroller 103 held in the system configuration information 201.
[0071] The system configuration information 201, as shown in Figure 7 for example, stores configuration information for each subcontroller 103, such as the number of communication resources, the corresponding communication object, the type of each communication object, the input / output direction of each communication object, the data size of each communication object, and other information not shown in the figure, such as the network topology, the connection order and connection status of each subcontroller 103.
[0072] As described above, a communication object configuration is set for each control pattern, and one example is shown in Figure 8. The request object selection unit 202 selects and extracts information on each communication object used in each control pattern from the system configuration information 201, according to the communication object configuration 801 of the control pattern as shown in Figure 8. For example, in the case of the communication object configuration 801 of the control pattern shown in Figure 8, the request object selection unit 202 selects and extracts information on each communication object used for control patterns 1 to 3 (communication objects A, B, D, etc. used in control pattern 1) from the system configuration information 201 shown in Figure 7.
[0073] Furthermore, the multiple control patterns input to the requested object selection unit 202 may include all control patterns related to the control system 100 or the device, or they may be selected or narrowed down in advance by the user or higher-level device utilizing the control system 100 and then input.
[0074] In S602, the input linkage unit 203 obtains information necessary for planning from the information of multiple communication objects selected by the request object selection unit 202 from the system configuration information 201, and generates input data.
[0075] The information required for the plan includes, for example, the number of shares for each communication object, the correspondence between the communication object and the subcontroller 103, the data size of the communication object, the type of communication object, and the input / output direction of the communication object.
[0076] The number of shares for each communication object is calculated from the communication object configuration of the multiple input control patterns. For example, in the case of the communication object configuration 801 of the control pattern shown in Figure 8, communication object A is used in any of control patterns 1 to 3, so the number of control patterns that use communication object A, i.e., the number of shares for communication object A, is 3. Similarly, the number of shares for communication objects B to I is determined as shown in the number of shares column in Figure 9. The correspondence between communication objects and subcontrollers 103, the data size of communication objects, the type of communication object, and the input / output direction of communication objects are obtained from the information about the multiple communication objects mentioned above.
[0077] The input linkage unit 203 generates input data 901 necessary for planning, such as shown in Figure 9, from the acquired and calculated information described above.
[0078] In Figure 6, steps S603 to S613 are executed by the resource planning unit 204. Note that if multiple resource planning units 204 are provided as shown in Figure 2 (for example, resource planning units 204-1, 104-2), steps S603 to S613 may be executed in parallel by each resource planning unit 204, or each resource planning unit 204 may execute them in any order. In the following explanation, we will assume that only one resource planning unit 204 is provided.
[0079] First, the resource planning unit 204 plans the placement of each communication object in the logical address space based on the input data generated by the input linkage unit 203, as described in S603 to S612. Specifically, in S603, the resource planning unit 204 selects all communication objects from among multiple communication objects that meet a predetermined criterion (hereinafter referred to as the first criterion) based on the input data. The first criterion is, for example, the one with the largest number of shares, as shown in Figure 6. In this case, the resource planning unit 204 selects all communication objects with the largest number of shares. For example, in the case of the input data 901 shown in Figure 9, the maximum number of shares is "3", so the resource planning unit 204 selects communication objects A and B, which have a number of shares of "3".
[0080] In S604, the resource planning unit 204 determines whether the communication object selected in S603 is exactly one, which is a predetermined condition. If it determines in S604 that the predetermined condition is not met (No. in S604), the process proceeds to S605. For example, in the case of the input data 901 shown in Figure 9, as described above, the resource planning unit 204 has selected communication objects A and B, so it determines in S604 that the predetermined condition is not met and proceeds to S605.
[0081] In S605, the resource planning unit 204 selects only one of several communication objects with the largest number of shares based on a predetermined criterion (hereinafter referred to as the second criterion). The second criterion is different from the first criterion. For example, if the second criterion is set to the communication object with the smallest data size, the resource planning unit 204 will select the communication object with the smallest data size from among several communication objects with the largest number of shares. For example, in the case of the input data 901 shown in Figure 9, the resource planning unit 204 will select communication object B, which has the smallest data size among the selected communication objects A and B with the largest number of shares. Note that this second criterion is not limited to data size, but may also be, for example, communication frequency, type of communication object, or input / output direction.
[0082] If it is determined in S604 that the predetermined conditions are met (Yes in S604), or if S605 is executed, the process proceeds to S606.
[0083] In S606, the resource planning unit 204 places the communication objects selected in S603 or S605 into the logical address space. When placing the communication objects, the resource planning unit 204 places them in locations where there is (or can be secured) sufficient space both before and after the logical address space. Before refers to areas with smaller logical address values, and after refers to areas with larger logical address values. As a guideline for sufficient space, for example, it is desirable to have enough space to place at least half of the communication objects other than those selected in S603 or S605, out of all the communication objects corresponding to all the control patterns input to the request object selection unit 202 in S601.
[0084] The subsequent steps S607 to S612 are executed repeatedly (loop processing) until the number of communication objects in the input data that are not yet placed in the logical address space becomes zero, that is, until all communication objects in the input data are placed in the logical address space. If, after the completion of S606, there are no longer any unplaced communication objects, the resource planning unit 204 naturally does not need to execute S607 to S612.
[0085] In S608, the resource planning unit 204 selects all of the communication objects in the input data that are not yet placed in the logical address space and meet the first criterion, i.e., the communication object with the largest number of shares. For example, in the case of the input data 901 shown in Figure 9, in the first loop processing, only communication object A is unplaced and has the largest number of shares, "3", so the resource planning unit 204 selects communication object A.
[0086] In S609, the resource planning unit 204 determines whether the communication object selected in S608 is exactly one, which is a predetermined condition.
[0087] If it is determined in S609 that the predetermined conditions are not met (No. in S609), the process proceeds to S610. In S610, the resource planning unit 204 selects only one of the multiple communication objects with the largest number of shares based on the second criterion. If the second criterion is the same as above, with the smallest data size of the communication objects, the resource planning unit 204 selects the communication object with the smallest data size from the multiple communication objects with the largest number of shares. Note that the criterion in S610 does not have to be the same as the second criterion in S605, and the resource planning unit 204 may use different criteria in S605 and S610 to select the communication object.
[0088] If it is determined in S609 that the predetermined conditions are met (Yes in S609), or if S610 is executed, the process proceeds to S611. For example, in the case of the input data 901 shown in Figure 9, in the first loop processing, as described above, the resource planning unit 204 selects only communication object A in S608, so it is determined in S609 that the predetermined conditions are met, and the process proceeds to S611.
[0089] In S611, the resource planning unit 204 places the communication object selected in S608 or S610 at a predetermined location in the logical address space. The predetermined location is adjacent to the communication object placed in S606 or in S611 in a previous loop process, and is a location where no gaps occur between communication objects in the logical address space. In addition, in S611 of each loop process, the resource planning unit 204 places several other communication objects so that the location of the communication object placed in S606 is approximately in the center (also called the middle or center).
[0090] One method for arranging such communication objects is to alternately arrange them at the predetermined positions before and after the communication object placed in S606 (hereinafter referred to as alternating arrangement). In this alternating arrangement, in S611 during the first loop processing, the resource planning unit 204 places the communication object A selected in S608 at the predetermined position in front of the communication object B placed in S606. For example, in the case of the input data 901 shown in Figure 9, there are multiple communication objects that have not yet been placed at this point, so the resource planning unit 204 repeats S608 to S610, and in S611 during the second loop processing, the communication object F selected in S610 during the second loop processing is placed at the predetermined position behind the communication object B placed in S606. Similarly, in S611 of the third loop processing, the resource planning unit 204 places the communication object D selected in S608 of the third loop processing at the predetermined position in front of the already placed communication object A, and in S611 of the fourth loop processing, the resource planning unit 204 places the communication object E selected in S610 of the fourth loop processing at the predetermined position behind the already placed communication object F.
[0091] In this way, the resource planning unit 204 sequentially selects all communication objects with a sharing count of 1 or more (i.e., those used in the multiple input control patterns) in the loop processing from S607 to S612 and arranges them alternately in the logical address space.
[0092] For example, Figure 10 shows an example in which all communication objects A to G, each with a shared number of 1 or more, are alternately arranged in the logical address space based on the input data 901 shown in Figure 9. As shown in Figure 10, the other communication objects are arranged in the logical address space 1101 such that communication object B is located approximately in the center. In the example shown in Figure 10, due to the alternating arrangement described above, communication objects A, B, and D used in control pattern 1 shown in Figure 8 are arranged adjacent to each other in area a, similarly, communication objects A, B, E, and F used in control pattern 2 are arranged adjacent to each other in area b, and communication objects A, B, C, D, F, and G used in control pattern 3 are arranged adjacent to each other in area c. In other words, according to the planning algorithm shown in Figure 6, it is possible to arrange each communication object used in each control pattern consecutively (aggregated) in the logical address space 1101.
[0093] Furthermore, the method of arranging the communication objects is not limited to the alternating arrangement described above; any other arrangement method is acceptable as long as the position of the communication object arranged in S606 is approximately in the center of the arrangement of all communication objects.
[0094] Furthermore, not only the arrangement method but also the processing content of the resource planning unit 204 is not limited to the example shown in Figure 6. Below, we will describe some variations of the processing content of the resource planning unit 204. In the explanation using Figure 6 above, the resource planning unit 204 performed the processing from S603 to S612 on all communication objects in the input data. However, for example, multiple communication objects in the input data may be classified by their input / output direction, and the resource planning unit 204 may perform the processing from S603 to S612 on each of the communication object groups, one group whose input / output direction is input and the other whose input / output direction is output. For example, in the case of the input data 901 shown in Figure 9, communication objects A, B, D, and F whose input / output direction is input may be separated from communication objects C, E, and G whose input / output direction is output, and the resource planning unit 204 may perform the processing from S603 to S612 on each of the respective communication object groups.
[0095] In this way, Figure 11 shows an example in which each communication object is arranged in the logical address space based on the input data 901 shown in Figure 9. As shown in Figure 11, communication objects A, B, D, and F, whose input / output direction is input, are alternately arranged in region d of the logical address space 1101 with communication object B approximately at the center by processing S603 to S612, and similarly, communication objects C, E, and G, whose input / output direction is output, are alternately arranged in region e, which is separate (different) from region d, with communication object E approximately at the center. However, even in this modified example, the method of arranging the communication objects is not limited to alternating arrangement, and any other arrangement method is acceptable.
[0096] As described above, the resource planning unit 204 executes S603 to S612 to plan the placement of each communication object with a shared number of 1 or more in the logical address space based on the input data. Subsequently, in S613, the resource planning unit 204 plans the allocation of each communication object corresponding to each subcontroller 103 to the one or more communication resources 403 owned by each subcontroller 103, based on the planned placement. At this time, if the number of communication resources owned by each subcontroller 103 is greater than the number of communication objects corresponding to each subcontroller 103, the resource planning unit 204 selects the same number of communication resources 403 as the number of communication objects and assigns each communication object to each selected communication resource 403. Note that both the selection of the communication resources 403 and the assignment of each communication object to each selected communication resource 403 can be done in any way. As a result, each communication resource 403 owned by each subcontroller 103 is assigned each communication object corresponding to each subcontroller 103 and its placement (location) in the logical address space. As described above, the resource planning unit 204 determines and outputs setting parameters according to the planning results, that is, the placement of each communication object and its allocation to each communication resource 403.
[0097] Finally, in S614, the execution process generation unit 205 generates and outputs an executable file that reflects the setting parameters output by the resource planning unit 204 to each subcontroller 103. The executable file is assumed to be in a format that can be executed by the main controller 102 or the subcontrollers 103, but any format is acceptable as long as it can update the parameters of the communication resources 403 of each subcontroller 103. For example, the executable file may be in the form of a definition file such as an ENI, an executable program, or a setting file. In addition, the executable file may be created for each subcontroller 103 (i.e., to individually update each communication resource 403 owned by each subcontroller 103), or it may be created in common for all subcontrollers 103. Note that, as described above, if the execution process generation unit 205 is implemented in, for example, the main controller 102 or each subcontroller 103, S614 will not be executed, and the planning process by the communication resource planning device 101 will end at S613. (Procedure for updating communication resource 403) The process in which the main controller 102, shown in Figure 3, sends the executable file output from the communication resource planning device 101 as a communication packet 501, and the subcontroller 103, shown in Figure 4, updates the communication resource 403, will be explained using Figure 12. Figure 12 is a flowchart showing an example of the process of sending the executable file by the main controller and updating the communication resource by the subcontroller in Embodiment 1.
[0098] First, let's explain the processing of the main controller 102. In Figure 12, at S1201, the executable file output by the execution processing generation unit 205 of the communication resource planning device 101 is input to the main controller 102. As described above, the executable file contains setting parameters related to the placement and assignment of communication objects, and these setting parameters are to be reflected in each communication resource 403 of each subcontroller 103.
[0099] As specifically explained in the description of the configuration example shown in Figure 3, at S1202, the main controller 102 creates a communication packet 501 based on the input executable file. When creating the communication packet 501, if the executable file is created in common for each subcontroller 103 as described above, the setting or update command for each communication resource 403 and the executable file are stored in the data area 508 of a single datagram 506. On the other hand, if the executable file is created for each subcontroller 103, for example, the executable file and setting or update command for each subcontroller 103 are stored in the data area 508 of each datagram 506 associated with each subcontroller 103. This creates a communication packet 501 containing one or more datagrams 506. Alternatively, multiple communication packets 501, each containing a different datagram 506, may be created.
[0100] In step S1203, the main controller 102 sends the created communication packets 501 to each sub-controller 103.
[0101] Next, we will explain the processing of each subcontroller 103. In the following explanation, we will describe the processing of one subcontroller 103, but the same applies to each of the other subcontrollers 103.
[0102] In S1204, the subcontroller 103 receives the communication packet 501. The received communication packet 501 is forwarded from the receiving unit 401 to the subcontroller control unit 404.
[0103] Next, as specifically explained in the description of the configuration example shown in Figure 4, at S1205, the subcontroller control unit 404 executes the executable file stored in the data area 508 of the datagram 506 of the communication packet 501 (or the datagram 506 corresponding to the subcontroller 103), and sets or updates the parameters of each communication resource 403 stored in the subcontroller startup information storage unit 405. After the update, the subcontroller control unit 404 changes the value of WKC 509, for example, based on a predetermined rule. Alternatively, instead of changing WKC 509, the processing result or error status may be reflected in the data area 508 to update the datagram 506. If the restart of the subcontroller 103 is a condition for updating the parameters of the communication resource 403, each subcontroller 103 may be restarted by methods such as cutting off the power supply.
[0104] In S1206, the subcontroller 103 sends a communication packet 501 containing the updated datagram 506 to the main controller 102 or another subcontroller 103.
[0105] Next, the processing of the main controller 102 will be explained again. As specifically explained in the explanation of the configuration example shown in Figure 3, at S1207, the main controller 102 receives one or more communication packets 501. In the case of one communication packet 501, the contents of one or more datagrams 506 (specifically, the contents of the data area 508 and the value of WKC 509) are updated by each subcontroller 103, and in the case of multiple communication packets 501, the contents of each datagram 506 are updated. These datagrams 506 are decomposed by the communication frame decomposition unit 305 and checked by the calculation unit 301. At this time, the calculation unit 301 checks, for example, the WKC 509 to confirm whether communication with each subcontroller 103 or the updating of parameters of each communication resource 403 in each subcontroller 103 has been performed successfully. The checks performed by the calculation unit 301 are not limited to the WKC 509, but may also be checks of processing results stored in the data area 508 or checks of error status. Alternatively, in order to confirm the update results of the parameters of each communication resource 403 in each subcontroller 103, the main controller 102 may create a communication packet 501 that reads the parameters of each communication resource 403 and send it from the main controller 102 to each subcontroller 103.
[0106] In S1208, the main controller 102 determines, based on the confirmation results in S1207, whether communication with each subcontroller 103 or updating of the parameters of each communication resource 403 in each subcontroller 103 has succeeded. If both are determined to be successful, the main controller 102 terminates processing. If either is determined to be a failure, it returns to S1203 and retransmits one or more communication packets 501 to each subcontroller 103. The main controller 102 may also perform error handling in conjunction with retransmission. (Effects) The effects of the planning process by the communication resource planning device 101 described above will now be explained in detail. For example, when controlling or operating the control system 100 according to a specific control pattern, the main controller 102 uses logical address communication to specify the area of the logical address space where multiple communication objects used in that control pattern are located using logical addresses (specifically, by specifying the logical address in the datagram header 507 of a single datagram 506 and storing control data using the multiple communication objects located in that area in the data area 508), and then transmits a communication packet 501.
[0107] As a specific example, if communication objects C, D, E, and G used in a particular control pattern (here referred to as control pattern 20) are located in the logical address space 1101, for example as shown in Figure 10, the main controller 102 designates area c shown in Figure 10 by logical address as the area where those communication objects are located. In this case, one or more subcontrollers 103 that receive the communication packet 501 and correspond to the communication objects C, D, E, and G will process each control device for which communication objects C, D, E, and G are defined, according to the control commands contained in the control data, for example, by acquiring data from each sensor, storing that data in the data area 508 of the communication packet 501, and transmitting it.
[0108] However, in the example shown in Figure 10, communication objects A, B, and F, in addition to communication objects C, D, E, and G, are also placed in area c between communication objects C, D and E, G. Since communication objects A, B, and F are not used in control pattern 20, processing for the control devices in which communication objects A, B, and F are defined is not actually necessary. However, if area c is specified in communication packet 501, one or more subcontrollers 103 corresponding to communication objects A, B, and F (which may be the same as or different from the one or more subcontrollers 103 corresponding to communication objects C, D, E, and G mentioned above) will also process each control device in which communication objects A, B, and F are defined according to the control commands included in the control data, for example, by acquiring data from each sensor, storing that data in the data area 508 of communication packet 501, and transmitting it.
[0109] As a result, the data area 508 in the communication packet 501 that is ultimately sent back to the main controller 102 stores not only data about each control device for which communication objects C, D, E, and G are defined, but also data about each control device for which communication objects A, B, and F are defined, which are not actually necessary (the data size of the data area 508 increases), which increases the size of the communication packet 501 and reduces the communication efficiency of the communication packet 501 in the control network 104.
[0110] Furthermore, in order to prevent the control devices from performing processing for communication objects A, B, and F which are not actually necessary as described above, the main controller 102 can, for example, send a communication packet 501 to each subcontroller 103 corresponding to communication objects C, D, E, and G via subcontroller communication. However, in that case, it is necessary to send a communication packet 501 containing multiple datagrams 506 for each subcontroller, or to send multiple communication packets 501 for each subcontroller. In either case, the communication overhead due to the processing of multiple datagram headers 507 and WKC 509 due to the increase in datagrams 506, or the communication overhead due to the processing of Ethernet headers 502, FCS 504, and Ethernet CAT headers 505 in addition to the processing of the above datagrams 506 due to the increase in communication packets 501, will increase.
[0111] In contrast, the communication resource planning device 101 in Embodiment 1, based on multiple control patterns, uses information such as the number of shared communication objects and data size of each communication object used in each control pattern to plan the arrangement in the logical address space so that each communication object used in each control pattern is arranged adjacently (continuously) using a planning algorithm as shown in Figure 6.
[0112] In this way, if each communication object used in individual control patterns can be arranged consecutively (aggregated), then even when specifying an area where each communication object used in a particular control pattern is located, as in the specific example above, communication objects not used in that control pattern will not be included in that area. As a result, the data area 508 in the communication packet 501 sent back to the main controller 102 will only contain data related to each control device in which each communication object used in the control pattern is defined. Compared to the specific example above, the data size of the data area 508 will be minimized, thus improving communication efficiency. Furthermore, in some cases, it may not be necessary to perform subcontroller communication as in the specific example above, so the number of datagrams 506 and communication packets 501 can be minimized compared to the specific example above, thereby suppressing an increase in communication overhead. In addition, these improvements can be made to communication performance, such as improved efficiency in utilizing communication bandwidth and shortening of the communication cycle.
[0113] Furthermore, shortening the communication cycle also shortens the control cycle of the control system 100, resulting in improved control performance. In addition, the surplus communication bandwidth resulting from improved communication bandwidth utilization efficiency can be used for setting and acquiring status information for devices constituting the control system 100, thereby enhancing the operation of the control system 100 and improving its reliability and uptime. Accordingly, according to Embodiment 1, it is possible to realize a high-performance and highly reliable control system 100, achieving an overall improvement in the performance of the control system 100.
[0114] Furthermore, even with the planning algorithm shown in Figure 6, it is not always possible to plan so that each communication object used in each control pattern is always placed consecutively (aggregated) in the logical address space. However, even in such cases, the planning algorithm shown in Figure 6 prioritizes the placement of objects with smaller data sizes. Therefore, even if a communication object unnecessary for a particular control pattern is placed in the same area as the communication objects used in that pattern, the data size of that unnecessary communication object will be small, and the decrease in communication efficiency and increase in communication overhead due to the presence of that unnecessary communication object will be kept to a minimum. This will achieve the same effect as described above.
[0115] (Handling of Hot Connect) In Example 1, changes in the configuration of devices and other components constituting the control system 100 were not particularly considered. However, the Ethernet system is equipped with a hot connect function that allows for the removal and connection of any devices and other components while the control system 100 is in operation. For example, in order to perform operational tests (tests and inspections) on individual devices, the removal and connection of individual devices may be carried out using this hot connect function. In this case, the configuration of the multiple subcontrollers 103 implemented in the devices will also be changed (removed or connected), and the control equipment provided by the devices, i.e., the control equipment of each subcontroller 103, will increase or decrease. Accordingly, the communication objects defined for each control equipment will also increase or decrease, and the correspondence between each control pattern and each communication object will also change. Therefore, Example 2 will explain how the communication resource planning device responds when the configuration of devices and other components within the control system is changed due to the use of hot connect. Note that in the following explanation, explanations that overlap with Example 1 will be omitted, and only the differences will be explained.
[0116] Figure 13 shows an example of the configuration of the control system in Embodiment 2, and the same reference numerals are used for components identical to those in the control system 100 shown in Figure 1. Figure 14 shows an example of how the communication objects used in the control pattern are changed when the subcontroller in Embodiment 2 is removed.
[0117] First, in Figure 13, the control system 130, like the control system 100 shown in Figure 1, includes a main controller 102 and one or more sub-controllers 103 (sub-controllers 103-1, 103-2, 103-3), but is configured so that sub-controller 103-2 (or more specifically, the device on which sub-controller 103-2 is mounted, etc.) can be removed while the control system 130 is in operation.
[0118] On the other hand, in Figure 14, the left side shows the communication object configuration 1401 of the same control pattern as shown in Figure 8. For example, if the configuration information of each subcontroller 103 in the control system 130 is the same as that shown in Figure 7, the communication objects corresponding to subcontroller 103-2 would be communication objects D, E, and F. However, when subcontroller 103-2 is removed, communication objects D, E, and F also become unnecessary (non-existent). Therefore, as shown on the right side of Figure 14, the communication object configuration of the control pattern changes, and the communication object configuration 1402 of the control pattern is obtained by removing communication objects D, E, and F from the communication object configuration of each control pattern.
[0119] Furthermore, since the change in the communication object configuration of the control pattern is determined by the change in the connection status of each subcontroller 103 as described above, it can occur not only by the removal of a specific subcontroller 103 but also by the addition of a new subcontroller 103. Also, even if the connection status of each subcontroller 103 does not change, if the connection status of the sensors or actuators that control each subcontroller 103 changes, the communication object configuration of the control pattern will similarly change. Moreover, even if the connection status of the subcontroller 103 or the control equipment does not change, if communication using any communication object becomes unnecessary due to operational parameters, etc., the communication object configuration of the control pattern will also change.
[0120] If the communication object configuration of the control pattern changes, it becomes necessary to rearrange each communication object and reallocate it to the communication resource 403, as explained using Figures 6 to 11. However, except in cases where equipment is suddenly removed due to unexpected failures or malfunctions, the removal or addition of the subcontroller 103 is predetermined or planned as part of the operation method and plan of the control system 130. Therefore, the control pattern for when the subcontroller 103 is removed or added by a user or a higher-level device is also predetermined and input to the communication resource planning device 101 at an appropriate timing, just like other control patterns.
[0121] As a result, the communication resource planning device 101 can pre-plan the placement of each communication object and its allocation to the communication resource 403, including control patterns where the communication object configuration changes, using a planning algorithm as shown in Figure 6. This eliminates the need to rearrange each communication object or reallocate it to the communication resource 403 when the communication object configuration of a control pattern changes due to a change in the configuration of the devices constituting the control system 130. In the example shown in Figure 14, the communication object configuration of each control pattern is changed, but the same applies when the communication object configuration changes in only some control patterns. (Effects) As described above, according to Embodiment 2, the communication resource planning device 101 can handle cases where the configuration of devices in the control system changes due to the use of hot connect. For example, it can handle changes in the communication object configuration due to the removal or addition of subcontrollers 103, changes in the connection status of connected sensors and actuators, and changes in operational parameters. In other words, even when the configuration of communication objects is changed, the communication resource planning device 101 pre-plans the rearrangement of each communication object and the reallocation to the communication resource 403 for control patterns. This allows the control system to continue operating without any particular problems, even if the device configuration needs to be changed during the operation of the control system.
[0122] Normally, rearranging each communication object and reallocating it to the communication resource 403 requires specialized knowledge and time, resulting in downtime for the control system. By reducing this downtime, the operating rate of the devices and other components of the control system can be maintained and improved. Furthermore, by planning in advance the rearrangement of each communication object and reallocation to the communication resource 403 for control patterns when the configuration of the communication object is changed, it is possible to prevent errors and malfunctions that occur when the configuration of the devices and other components in the control system is changed. As a result, in addition to the same effects as in Example 1, it is possible to maintain and improve the operating rate of the control system and ensure its reliability.
[0123] (Addressing the shortage of communication resources) As described above, the number of communication resources owned by each subcontroller 103 differs for each subcontroller 103, and each subcontroller 103 does not necessarily own more communication resources 403 than the number of control devices for each subcontroller 103, i.e., the number of communication objects corresponding to each subcontroller 103, and it is possible that the number of communication resources is less than the number of communication objects. Therefore, in Example 3, we will explain how the communication resource planning device responds when the number of communication resources owned by a subcontroller is less than the number of communication objects corresponding to the subcontroller. Note that in the following explanation, we will omit explanations that overlap with Example 1 and explain the differences.
[0124] Figure 15 shows an example of the configuration information of a subcontroller in Embodiment 3. In Figure 15, in the configuration information 1501 shown on the left, subcontrollers 103-1 and 103-3 each show an example where the number of communication resources they own is less than the number of corresponding communication objects.
[0125] In such cases, one possible method for assigning each communication object to each communication resource 403 in each subcontroller 103 is to assign two or more communication objects to one communication resource 403. However, there are cases where only one communication object can be assigned to one communication resource 403, that is, one communication resource 403 is consumed for the placement and processing of one communication object in the logical address space. In this case, when the communication resource planning device 101 assigns each communication object to each communication resource 403, there is an insufficient number of communication resources, and each communication object cannot be assigned. Therefore, it becomes necessary to increase the number of communication resources 403 in the subcontroller 103 or reduce the number of communication objects.
[0126] Incidentally, communication objects corresponding to the same subcontroller 103 can be integrated, and after integration, they can be treated as a single communication object. As a specific example, according to the configuration information 1501 in Figure 15, the communication objects corresponding to subcontroller 103-1 are communication objects A, B, and C, which is more than the number of communication resources. However, for example, two of these, communication objects A and B, can be integrated and treated as a single communication object α. Similarly, the communication objects corresponding to subcontroller 103-3 are communication objects G, H, and I, which are also more than the number of communication resources. However, these communication objects G, H, and I can be integrated and treated as a single communication object β. When such communication object integration is performed, as shown in the configuration information 1502 on the right side of Figure 15, the communication objects corresponding to subcontroller 103-1 become communication objects α and C, which is the same number as the number of communication resources. Also, the communication object corresponding to subcontroller 103-3 becomes only communication object β, which is also the same number as the number of communication resources.
[0127] Therefore, for example, when inputting and setting the configuration information of a communication object to the system configuration information 201, a user or a higher-level device may, for each subcontroller 103, appropriately consolidate the communication objects so that the number of communication resources is equal to or less than the number of communication resources, and treat them as a single communication object, if the number of communication resources is less than the number of communication objects, or the request object selection unit 202, input linkage unit 203, or resource planning unit 204 may perform a similar process.
[0128] As a result, when the number of communication objects corresponding to each subcontroller 103 is equal to or less than the number of communication resources, the resource planning unit 204 can plan the placement of each communication object and its allocation to the communication resources 403, as shown in Figure 6.
[0129] As stated above, communication objects corresponding to different subcontrollers 103 cannot be integrated. Therefore, in such cases, if possible, integration of communication objects can be achieved by changing the connection between the two or more communication objects to be integrated and each subcontroller 103 of the control device (such as a sensor or actuator) in which those communication objects are defined, so that the two or more communication objects to be integrated correspond to the same subcontroller 103. (Effects) As explained above, according to Embodiment 3, if the number of communication resources owned by a subcontroller is less than the number of communication objects, integrating two or more communication objects corresponding to the same subcontroller can avoid a shortage of communication resources when the communication resource planning device allocates each communication object to each communication resource. This makes it possible for the communication resource planning device to plan the placement of each communication object and its allocation to communication resources with the existing number of communication resources, without requiring the addition of communication resources. Therefore, in addition to the same effects as Embodiment 1, it is possible to maintain the reliability of the control system and maintain or reduce costs.
[0130] Although embodiments of the present invention have been described in detail above, the present invention is not limited to the embodiments described above, and various design modifications can be made without departing from the spirit of the invention as described in the claims. For example, each of the embodiments described above is described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to having all of the described configurations. Furthermore, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Moreover, it is possible to add, delete, or replace parts of the configuration of each embodiment with other configurations.
[0131] 10...Control network system 100...Control system 101...Communication resource planning device 102...Main controller 103...Subcontroller 104...Control network 201...System configuration information 202...Request object selection unit 203...Input linkage unit 204...Resource planning unit 205...Execution process generation unit 301...Calculation unit 302...Datagram information storage unit 303...Communication packet generation unit 304...Transmission unit 305...Communication frame decomposition unit 306...Receiving unit 401...Receiving unit 402...Transmission unit 403...Communication resources 404...Subcontroller control unit 405...Subcontroller startup information storage unit 502...Ethernet header 503...Ethernet data 504...FCS 505...EtherCAT header 506...Datagram 507...Datagram header 508...Data area 509...WKC
Claims
1. A communication resource planning method for planning the arrangement in a logical address space of a plurality of communication objects defined for each of a plurality of control devices controlled by each of a plurality of subcontrollers connected to a main controller, and used when each of the subcontrollers communicates control data relating to each of the control devices with the main controller, comprising: a first step of selecting one communication object from all the communication objects included in all the communication object configurations based on a predetermined criterion, based on a communication object configuration that shows a combination of two or more communication objects defined by each of a plurality of control patterns that show a series of operation patterns of one or more of the control devices; a second step of arranging the one communication object in the logical address space; a third step of sequentially selecting each of the communication objects excluding the one communication object based on the predetermined criterion; and a fourth step of arranging each of the sequentially selected communication objects in the logical address space such that the one communication object is located approximately in the center.
2. A communication resource planning method according to claim 1, wherein in the first and third steps, the predetermined criterion is the one with the largest number of shared items, which is the number of control patterns that include each of the communication objects in the communication object configuration, and the communication object with the largest number of shared items is selected.
3. A communication resource planning method according to claim 1, wherein in the first step and the third step, the predetermined criteria consist of a first criterion and a second criterion, the first criterion is the one with the largest number of shared items, which is the number of control patterns that include each of the communication objects in the communication object configuration, the second criterion is the one with the smallest data size, and if there are multiple communication objects with the largest number of shared items selected in the first step or the third step, the communication object with the smallest data size among the multiple communication objects with the largest number of shared items is selected.
4. A communication resource planning method according to claim 3, wherein the second criterion is the communication frequency of the communication object, or the type of control equipment in which the communication object is defined.
5. A communication resource planning method according to claim 1, wherein in the fourth step, each of the communication objects selected in the order described above is alternately placed before and after one of the communication objects.
6. A communication resource planning method according to claim 1, comprising dividing each of the communication objects into those whose input / output direction is input and those whose input / output direction indicates the direction in which each of the control devices for which the communication object is defined can input and output, and performing the first to fourth steps for each of the plurality of communication objects whose input / output direction is input and the plurality of communication objects whose input / output direction is output.
7. A communication resource planning method according to claim 1, further comprising a fifth step of assigning each of the communication objects defined for each of the control devices controlled by each of the subcontrollers to each of the one or more communication resources owned by each of the subcontrollers, after the execution of the fourth step.
8. A communication resource planning method according to claim 7, further comprising a sixth step of generating an executable file that reflects the arrangement of each of the communication objects in the logical address space and the results of the allocation to each of the communication resources to each of the subcontrollers.
9. A communication resource planning method according to claim 1, wherein the plurality of control patterns include the control patterns when any of the plurality of subcontrollers is removed or when a new subcontroller is added to the plurality of subcontrollers.
10. A communication resource planning method according to claim 1, wherein if the number of communication objects defined for each of the control devices controlled by each of the subcontrollers is greater than the number of one or more communication resources owned by each of the subcontrollers, at least two or more of the communication objects from the plurality of communication objects are integrated into one communication object, and the first to fourth steps are performed.
11. A communication resource planning device for planning the arrangement in a logical address space of a plurality of communication objects defined for each of a plurality of control devices controlled by each of a plurality of subcontrollers connected to a main controller, and used when each of the subcontrollers communicates control data relating to each of the control devices with the main controller, comprising a resource planning unit, the resource planning unit selects one of the communication objects from all the communication objects included in all the communication object configurations based on a predetermined criterion, based on a plurality of communication object configurations that represent a combination of two or more communication objects defined by each of a plurality of control patterns that represent a series of operation patterns of one or more of the control devices, places the one communication object in the logical address space, sequentially selects each of the communication objects excluding the one communication object based on the predetermined criterion, and arranges each of the sequentially selected communication objects in the logical address space such that the one communication object is located approximately in the center.
12. A communication resource planning device according to claim 11, wherein the resource planning unit further, after arranging all the communication objects in the logical address space, assigns each of the communication objects defined for each of the control devices controlled by each of the subcontrollers to each of the one or more communication resources owned by each of the subcontrollers.
13. A communication resource planning device according to claim 12, further comprising an execution processing generation unit that generates an executable file that reflects the results of the resource planning unit's arrangement of each of the communication objects in the logical address space and the allocation of each of the communication resources to each of the subcontrollers.
14. A control network system comprising: a main controller; a control system comprising a plurality of subcontrollers connected to the main controller; and a communication resource planning device which plans the arrangement in a logical address space of a plurality of communication objects defined for each of a plurality of control devices controlled by each of the plurality of subcontrollers, and used when each of the subcontrollers communicates control data relating to each of the control devices with the main controller, wherein the communication resource planning device comprises a resource planning unit, the resource planning unit selects one communication object from all the communication objects included in all the communication object configurations based on a predetermined criterion, based on a plurality of communication object configurations which represent combinations of two or more communication objects defined by each of a plurality of control patterns which represent a series of operation patterns of one or more of the control devices, places the one communication object in the logical address space, selects each of the other communication objects in order based on the predetermined criterion, and places each of the sequentially selected communication objects in the logical address space such that the one communication object is located approximately in the center.