Apparatus, method, and computer-readable recording medium

By combining priority control and data link layer flow control in RT communication, the problems of packet loss and increased delay in RT communication are solved, and efficient and reliable communication is achieved.

CN120658690APending Publication Date: 2025-09-16YOKOGAWA ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510304108.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-14
Filing Date
2025-03-14
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

It is difficult to simultaneously set both packet loss and increase in communication delay to approximately zero in RT communication with the existing technology, resulting in limited reliability and efficiency of RT communication.

Method used

By storing the transmitted frames in the RT transmit buffer when the priority of the communication flow is valid, and storing them in the non-RT transmit buffer when the priority is invalid, the flow control mechanism of the data link layer is adopted to ensure the priority transmission of RT communication. Combined with the limitation of the maximum transmission bandwidth and the flow control of adjacent nodes, data packet loss and communication delay are avoided.

Benefits of technology

It achieves approximately zero packet loss and communication delay in RT communication, improves communication reliability and efficiency, and reduces network construction costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120658690A_ABST
    Figure CN120658690A_ABST
Patent Text Reader

Abstract

The present invention relates to an apparatus, a method, and a computer-readable recording medium for making both packet loss and fluctuation in communication delay substantially zero at the same time in RT communication. The device is provided with a processing unit that, when the priority of a communication flow is valid, stores a transmission frame transmitted by the communication flow in an RT transmission buffer for RT communication, and when the priority is invalid, stores the transmission frame in a transmission buffer for non-RT communication, and, compared with the transmission frame stored in the transmission buffer, stores the transmission frame in the RT transmission buffer for RT communication. A transmission frame stored in an RT transmission buffer is first transmitted, and flow control of a data link layer is performed between directly connected communication objects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an apparatus, a method, and a computer-readable recording medium. Background Art

[0002] There is a known technique for controlling various state quantities of industrial processes and performing high-level automation in workshops, factories, etc. This control can use real-time (RT) communication, which requires control communication (see, for example, Non-Patent Document 1).

[0003] Non-patent document 1: "Open Process Automation (O-PAS)", [online],

[0004] [Retrieved March 14, 2020], Internet <URL:

[0005] https: / / www.productivity.be / en / page.php?r=O-PAS> Summary of the Invention

[0006] However, in the above-mentioned techniques, it is sometimes difficult to simultaneously reduce both packet loss and increase in communication delay to approximately zero in RT communication. An object of the present invention is to simultaneously reduce both packet loss and fluctuation in communication delay to approximately zero in RT communication.

[0007] One aspect involves a device having a processing unit that stores a send frame sent through the communication flow in an RT send buffer for RT communication when the priority of the communication flow is valid, and stores the send frame in a send buffer for non-RT communication when the priority is invalid. Compared with the send frame stored in the send buffer, the send frame stored in the RT send buffer is sent first, and data link layer flow control is performed between directly connected communication objects.

[0008] One aspect involves a method in which a computer performs the following processing: when the priority of a communication flow is valid, a send frame sent through the communication flow is stored in an RT send buffer for RT communication; when the priority is invalid, the send frame is stored in a send buffer for non-RT communication; compared with the send frame stored in the send buffer, the send frame stored in the RT send buffer is sent first, and data link layer flow control is performed between directly connected communication objects.

[0009] One aspect involves a program recorded on a computer-readable recording medium that causes a computer to perform the following processing: when the priority of a communication flow is valid, a send frame sent through the communication flow is stored in an RT send buffer for RT communication; when the priority is invalid, the send frame is stored in a send buffer for non-RT communication; compared with the send frame stored in the send buffer, the send frame stored in the RT send buffer is sent first, and data link layer flow control is performed between directly connected communication objects.

[0010] Effects of the Invention

[0011] According to one embodiment, it is possible to simultaneously reduce both packet loss and increase in communication delay to substantially zero in RT communication. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 It is the network structure diagram of the control system.

[0013] Figure 2 It is a network structure diagram of the prior art.

[0014] Figure 3 It is a functional structure diagram of the terminal node of the prior art.

[0015] Figure 4 It is a functional structure diagram of a relay node in the prior art.

[0016] Figure 5 It is a diagram of the management table.

[0017] Figure 6 This is a network configuration diagram of the control system involved in this embodiment.

[0018] Figure 7 It is the functional structure diagram of the terminal node.

[0019] Figure 8 It is a diagram of the communication flow management table.

[0020] Figure 9 It is a functional structure diagram of the relay node.

[0021] Figure 10 This is a flow chart of the RT buffer storage unit.

[0022] Figure 11 This is a flowchart of the RT buffer sending unit.

[0023] Figure 12 This is a flowchart of the RT sending unit of the end node.

[0024] Figure 13 This is a flowchart of the RT receiving unit of the end node.

[0025] Figure 14 This is a flowchart of the RT sending unit of the relay node.

[0026] Figure 15 This is a flowchart of the RT receiving unit of the relay node.

[0027] Figure 16 This is a diagram of the hardware structure. DETAILED DESCRIPTION

[0028] Below, the embodiments of the present application are described based on the accompanying drawings. The embodiments are merely examples, and the present invention is not limited to the embodiments. Identical elements are labeled with the same reference numerals, and descriptions of identical processes are omitted. The various embodiments can be combined as appropriate. For functional modules unique to the prior art, a "#" is marked at the end of the reference numeral, and the functional modules and processes unique to the present application are surrounded by a bold frame for description.

[0029] <Prerequisite>

[0030] Before describing the present embodiment, the terms underlying the present embodiment, a control system used for operations in a plant or the like, and a network configuration of the control system will be described.

[0031] (Explanation of terms)

[0032] First, let's explain the terms used in this embodiment. Control communications are broadly categorized into two types. The first type is communication required for control cycle processing without direct human intervention, and is communication between controllers and between controllers and devices. The second type is communication between a PC (Personal Computer) and a controller, operated and monitored by a human. Communication required for control cycle processing, such as communication between end nodes of controllers and other devices in a control system, requires higher RT than communication between a PC and a controller.

[0033] Flow control refers to limiting the amount of data sent between communication nodes in order to prevent data packets from overflowing the receive buffer of the specified layer of the OSI (Open Systems Interconnection) reference model. For example, flow control includes flow control at the transport layer represented by TCP (Transmission Control Protocol) as the 4th layer and flow control at the data link layer represented by Ethernet (registered trademark) as the 2nd layer. Flow control at the transport layer limits the amount of data sent so that the receive buffer of the transport layer between the end nodes does not overflow, and acts on end-to-end communication. On the other hand, flow control at the data link layer limits the amount of data sent so that the receive buffer of the data link layer between nodes directly connected by the network does not overflow.

[0034] Communication ports, including NICs (Network Interface Cards), are used to connect end nodes to relay nodes. They operate independently of the CPU as hardware, mediating communication data between the CPU and the network. They perform processing at the physical and data link layers of the OSI model.

[0035] Packet loss (frame loss) refers to the loss of packets, etc., caused by overflowing a receiving buffer filled with packets and frames of non-RT communications that do not require RT, in the RT communication network.

[0036] Increased RT communication latency refers to the time it takes for a send request to reach the destination, caused by the increased number of non-RT communication processes that precede each node's RT communication processing. For example, if a non-RT communication packet is already stored in the send buffer before an RT communication packet is stored, the RT communication process will wait until the previously stored non-RT communication packet is sent.

[0037] The maximum receiving bandwidth of an end node refers to the amount of data that an end node application can stably receive per second with minimal packet loss. For example, in the case of an integrated device with a low CPU (Central Processing Unit) capability, the receiving processing capability of the integrated device in 1000BASE-T Ethernet communication is lower than the communication medium's maximum bandwidth (maximum communication bandwidth), which is 1 Gbps. "Substantial packet loss" means, for example, that packet loss in 1000BASE-T Ethernet communication does not occur continuously, and even if it does occur, it occurs only once every few tens of minutes.

[0038] (Control System)

[0039] Next, a process control system using a communication node to which the present invention is applied will be described using control system 1 as an example. Furthermore, this embodiment is not limited to its application targets and can be applied to any system, such as systems using RT communication and non-RT communication.

[0040] Control systems 1 control various state variables (e.g., pressure, temperature, flow rate, etc.) in industrial processes in workshops, factories, and the like, and perform highly automated operations. This control requires real-time (RT) performance, and the control communications used for this control must also be RT. To implement RT communication, two methods are used: The first is to construct a dedicated network for control communication, separate from networks for other purposes. The second is to implement this using a vendor-specific communication protocol, such as Vnet / IP (Internet Protocol).

[0041] On the other hand, the emergence of control systems in recent years, with the emergence of integrated devices (such as controllers) using public communication protocols (such as TCP / IP, OPC (OLE for Process Control), and UA (Unified Architecture), has made it possible to exchange data with various communication partners on the network without separation. Furthermore, the expansion of communication bandwidths on public networks (such as Ethernet) has enabled control communications and other applications to be connected to the same network.

[0042] Against this backdrop, control system users are seeking to minimize control system installation costs and facilitate the introduction of DX (Digital Transformation) technologies. To achieve this, they are promoting collaboration with suppliers to create a multi-vendor environment where control functions are connected via open networks. Consequently, control systems in multi-vendor environments require RT communication using common communication protocols such as TCP / IP.

[0043] (Network Structure)

[0044] Next, the network configuration of the control system 1 will be described. Figure 1 This is the network structure diagram of the control system 1. Figure 1 As shown, the network structure of the control system 1 is composed of terminal nodes and relay nodes as communication nodes. Figure 1 The structure is merely an example and does not limit the number of nodes.

[0045] Figure 1 The end nodes shown are communication nodes at both ends of end-to-end communication. End nodes transmit and receive communication data using applications. Examples of end nodes include controllers for assembly equipment, general-purpose instruments, PCs, and network-compatible input / output devices.

[0046] A relay node is a communication node used to connect end nodes across a network. It prioritizes high-speed relaying of communication data, enabling transmission and reception without packet loss up to the bandwidth limit of the network's communication medium. Examples of relay nodes include communication devices with multiple communication ports, such as L2SWs (Layer 2 Switches) like network switches and L3SWs (Layer 3 Switches) like routers.

[0047] Applications that use end nodes to perform actions are divided into control applications that require RT processing and non-control applications that do not require RT processing. According to the fixed priority plan of the RTOS (Real-Time Operating System), high-priority control applications are processed in priority compared to low-priority non-control applications. In this way, RT processing of control applications is achieved. Control applications also require RT properties for communication. On the other hand, non-control applications that do not perform RT processing do not require RT communication. In addition, RTOS refers to the components of the communication protocol assembled in the RTOS. It is expected that RT processing will be performed on this communication protocol in the same way as RT tasks.

[0048] <Existing Technology>

[0049] Next, a minimum network configuration diagram of a currently used control system including an RT communication network and a non-RT communication network will be described. Figure 2 This is the network structure diagram of the control system of the prior art. Figure 2 As shown, in control system 1#, the RT communication network is constructed as a dedicated RT communication network that is physically independent of the non-RT communication network in order to prevent it from being adversely affected by non-RT communication flows. Specifically, the dedicated RT communication network uses a mechanism that physically separates the communication ports and relay nodes from those of the non-RT communication network.

[0050] Control system 1# is composed of end node 10#, end node 20, end node 30, relay node 40#, and relay node 50#. End node 10# performs RT communication with end node 20 via relay node 40# using a dedicated RT communication network. Furthermore, end node 10# performs non-RT communication with end node 30 via relay node 50# using a non-RT communication network.

[0051] Relay node 40# relays the communication between end node 10# and end node 20 at different communication ports. Relay node 50# relays the communication between end node 10# and end node 30 in the same manner as relay node 40#. Figure 3 、 Figure 4Since the structure of relay node 50# is the same as that of relay node 40#, detailed description based on the drawings will be omitted.

[0052] [Structure of terminal nodes]

[0053] Figure 3 This is a functional structure diagram of an end node in the prior art. End node 10# has a CPU component and multiple communication ports.

[0054] (CPU component structure)

[0055] The CPU component includes applications and an RTOS. The applications include an RT communication application 11#, a control application requiring RT processing and RT communication, and a non-RT communication application 12, a non-control application that does not require RT processing or RT communication. RT communication application 11# controls the transmission rate so as not to exceed the upper limit of the transmission rate pre-allocated for each RT communication application and notifies the transmitter 14 of the RT communication transmission data. This reduces the frequency of packet loss. The non-RT communication application 12 does not limit the transmission rate and notifies the transmitter 14 of the non-RT communication transmission data.

[0056] (Structure of RTOS)

[0057] RTOS includes communication protocols from the network layer of layer 3 to the application layer of layer 7 of the OSI reference model, namely layer 3 to layer 7 protocols, and a data link layer upper protocol of the data link layer such as Ethernet.

[0058] (Structure of Layer 3 to Layer 7 Protocols)

[0059] Layer 3 to Layer 7 protocols include communication functions such as flow control, delivery confirmation, and retransmission. The Layer 3 to Layer 7 protocols include a receive buffer 13, a transmitter 14, and a receiver 15. The receive buffer 13 is an object of flow control that can store received data packets without buffer overflow. The transmitter 14 obtains transmission data from each application unit (RT communication application unit 11# and non-RT communication application unit 12), generates transmission data packets such as IP packets and TCP packets, and notifies the buffer storage unit 17#. The receiver 15 stores the received data packets in the receive buffer 13 in the order notified by the receiver 19, extracts the received data from the received data packets in the order stored in the receive buffer 13, and notifies the respective applications.

[0060] When performing RT communication, transmitter 14 and receiver 15 perform flow control at the transport layer, such as TCP. Through this flow control, end node 10# gradually notifies its communicating counterparts, end nodes 20 and 30, of the fluctuating free capacity of receive buffer 13. As a result, end nodes 20 and 30 do not transmit data that exceeds or equals the free capacity, thereby preventing data packets from overflowing transport layer receive buffer 13.

[0061] (Structure of upper protocol of data link layer)

[0062] The data link layer is divided into two sublayers: the upper LLC (Logical Link Control) sublayer and the lower MAC (Media Access Control) sublayer. The upper protocol of the data link layer, for example, includes a portion of the LLC sublayer. The upper protocol of the data link layer includes a send buffer 16, a buffer storage unit 17#, a buffer send unit 18#, and a receiver 19.

[0063] The transmission buffer 16 stores transmission packets. The buffer storage unit 17# stores transmission packets in the transmission buffer 16 in the order of transmission requests made asynchronously by a plurality of application units, that is, in the order notified from the transmission unit 14.

[0064] Buffer transmission unit 18# extracts transmission packets in the order of transmission requests, i.e., the order in which they were stored in transmission buffer 16, and generates transmission frames such as Ethernet frames, and then performs transmission processing on the packets stored in transmission buffer 21 of the lower-level protocol of the data link layer. Receiving unit 19 extracts received packets from received frames in the order notified by receiving unit 24#, and notifies receiving unit 15. The lower-level protocol of the data link layer includes, for example, a portion of the LLC sublayer and the MAC sublayer.

[0065] Furthermore, transmission processing refers to the processing performed by a layer from the moment it receives transmission data, etc. from an upper layer to the moment it passes the transmission data, etc., to a lower layer. Therefore, transmission processing for a protocol higher in the data link layer refers to processing performed from the moment it passes transmission data, etc., received from a protocol higher in the layer (Layer 3 to Layer 7 protocols) to a protocol lower in the data link layer.

[0066] That is, the sending processing of the data link layer upper protocol includes: the processing of storing the sending data packet in the buffer storage unit 17# of the sending buffer 16; and the processing of extracting the sending data packet from the sending buffer 16 and handing over the sending frame to the buffer sending unit 18# of the data link layer lower protocol.

[0067] (Structure of communication port)

[0068] The communication port of end node 10# includes a data link layer lower protocol, and the data link layer lower protocol includes a transmission buffer 21, a reception buffer 22, a transmission unit 23#, and a reception unit 24#.

[0069] Transmit buffer 21 stores transmit frames. Receive buffer 22 stores receive frames. If any transmit frames stored in transmit buffer 21 by buffer transmitter 18# remain, transmitter 23# extracts transmit frames from transmit buffer 21 in the order in which they were stored and transmits them to the network via the physical layer. The physical layer receives receive frames from the network and stores them in receive buffer 22. Receiver 24# extracts receive frames from receive buffer 22 in the order in which they were stored and notifies receiver 19.

[0070] [Relay Node Structure]

[0071] Next, the configuration of relay node 40# will be described. Figure 4 2 is a functional block diagram of a conventional relay node. Relay node 40# has multiple communication ports and a management table 29. The communication port of relay node 40# includes a receive buffer 25, a transmit buffer 26, a receiver 27#, and a transmitter 28#.

[0072] Receive buffer 25 and transmit buffer 26 store frames relayed between end node 10# and end node 20. Receiver 27# extracts the stored frame from receive buffer 25 of the communication port. If the destination MAC address assigned to the frame is not relay node 40#, receiver 27# identifies the communication port of the relay destination. For example, receiver 27# searches management table 29 using the MAC address as a key to find the relay destination's communication port. Receiver 27# stores the frame in transmit buffer 26 of the relay destination's communication port.

[0073] Transmitter 28 # of the relay destination communication port extracts the frames stored in receiver 27 # of the different communication ports from transmit buffer 26 of the communication port in the order of reception by receiver 27 # of the communication port, and transmits the frames to the network via the physical layer.

[0074] The management table 29 contains information for determining a communication port of a relay destination. Figure 5 This is a diagram of a management table. In the management table 29, the communication port number and the MAC address information of the communication node directly connected to the communication port are associated with each other. The communication port number is prepared according to the number of communication ports.

[0075] [Problems with existing technology]

[0076] Both RT and non-RT communication require reliable information transmission to the communication partner. However, RT communication requires information to be delivered within a predetermined timeframe, thus minimizing packet loss and communication delay. However, existing technologies present the following problem: in RT communication, it is impossible to simultaneously achieve approximately zero packet loss and increased communication delay. To address this issue, there are two approaches: one, achieving approximately zero packet loss in RT communication, and the other, achieving approximately zero increased communication delay (setting the delay constant).

[0077] First, let's explain Problem 1 in detail. If the transmission origin node (transmission origin device) that serves as the starting point of the transmission process, such as end node 10#, which has the initial transmitter in the communication path, does not limit the transmission bandwidth of RT communication, packet loss can occur. For example, if the transmission bandwidth of RT communication sent by the transmission origin node exceeds a threshold, such as the maximum receiving bandwidth, of the transmission destination node (transmission destination device) that serves as the end point of the transmission process, such as end node 20, packet loss can occur.

[0078] Therefore, in the prior art, the RT communication application unit 11# assembles a mechanism for limiting the amount of data sent for each RT communication application into each control application, thereby ensuring that the sending band of the RT communication does not exceed the threshold of the maximum receiving band of the sending endpoint node, and avoiding the occurrence of data packet loss.

[0079] In addition, as described above, the sending unit 14 and the receiving unit 15 utilize the flow control of the transport layer, and the end node 20 limits the sending amount of the sending unit 14 of the end node 10# to less than or equal to the free capacity of the receiving buffer so that the receiving buffer of the transport layer does not overflow and avoids data packet loss.

[0080] However, the aforementioned transmission rate limit requires adjustment of the upper limit for all control applications using RT communication whenever an RT communication application is modified or added. Therefore, it is desirable to provide a common mechanism for control systems that eliminates the need for adjustment of transmission rates between control applications.

[0081] Furthermore, even if the control application's transmission bandwidth is limited to a value less than or equal to a threshold, this alone does not prevent packet loss. This is because the threshold is the average value of the transmission volume over a base period, such as one second. Therefore, the actual transmission volume of end node 10#, in a period shorter than the base period, affects the CPU load of end node 10#, causing the transmission volume to fluctuate. This is hereinafter referred to as fluctuation in the transmission volume of the communication flow and is considered one of the causes of packet loss. Similarly, the actual reception volume of end node 20 also fluctuates over shorter periods due to the influence of the CPU load of end node 20.

[0082] Therefore, even if the transmission rate limit and transport layer flow control described in the prior art are implemented by the RT communication application unit 11, fluctuations in the transmission rate of the communication flow cannot be prevented, and thus data packets may overflow from the data link layer receive buffer of the end node 20. Therefore, the prior art cannot solve problem 1.

[0083] Next, let's discuss Problem 2 in detail. For example, depending on timing, non-RT communication packets may be stored in the transmission buffer before RT communication packets. In this case, the RT communication transmission process must wait until the transmission process of the previously stored non-RT communication packets is completed. This increases the communication delay of RT communication depending on the number of non-RT communication packets stored in the buffer.

[0084] Therefore, conventional technology attempts to mitigate the negative impact of non-RT communications by constructing a dedicated RT communication network physically separate from the non-RT communication network. However, this approach is not practical as a solution to Problem 2 because of the high cost and space required to build a dedicated RT communication network.

[0085] <Present embodiment>

[0086] In contrast, the control system 1 according to this embodiment addresses Problems 1 and 2 by utilizing end nodes 10 and relay nodes 40, which add mechanisms to the transmission processing mechanisms of the conventional control system 1#, addressing the following issues. Furthermore, the transmission processing measures enable the determination of RT or non-RT communication before transmission, significantly improving Problems 1 and 2 compared to reception processing measures that determine communication after reception. However, the mechanisms addressing the following issues are effective individually; without implementing mechanisms addressing all of them simultaneously, Problems 1 and 2 cannot be resolved.

[0087] ·Mechanism for solving problem 1: Limitation of the maximum transmission bandwidth

[0088] Mechanism for solving problem 1: Flow control at the data link layer between adjacent nodes

[0089] Mechanism for solving problem 2: Priority assignment

[0090] Mechanism for solving problem 2: Priority control of sending processing

[0091] Specifically, for problem 1, if a data packet is sent all at once from a transmission origin node such as end node 10, it will reliably reach a transmission destination node such as end node 20, thereby implementing a mechanism to prevent data packet retransmission due to packet loss. For problem 2, RT communication eliminates communication delays caused by non-RT communication, thus implementing a mechanism to process RT communication at each node before non-RT communication processing.

[0092] The "maximum transmission bandwidth limitation" mechanism is used to limit the maximum transmission bandwidth of specific nodes. Specifically, in a communication path, transmission origin nodes such as the terminal node 10, which has the first transmission unit, and relay nodes such as the relay node 40, which has the last transmission unit and is adjacent to the transmission destination node, transmit using a communication bandwidth that can be fully received by the transmission destination node.

[0093] Furthermore, when the maximum transmission bandwidth is limited based on the transmission origin node, the maximum transmission bandwidth is not limited by each independent application as in the prior art, but rather by a common process independent of the application, namely, the data link layer upper protocol of the RTOS (RT buffer storage unit 17 described later). Therefore, there is no need to limit the transmission volume for each application.

[0094] Regarding the "maximum transmission bandwidth limitation" mechanism, for example, both the end node 10 and the relay node 40 limit the transmission bandwidth for RT communications based on the maximum reception bandwidth of the transmission destination node. On the other hand, if the device is a transmission origin node, such as the end node 10, which has the initial transmission unit in the communication path, the transmission unit of the transmission origin node only limits the transmission bandwidth for RT communications. Specifically, the transmission unit of the transmission origin node sets the transmission bandwidth for RT communications based on the maximum reception bandwidth of the transmission destination node, and does not limit the transmission bandwidth for non-RT communications based on the maximum reception bandwidth of the transmission destination node. For example, the transmission unit of the end node 10 limits the maximum transmission bandwidth for RT communications to a threshold value less than or equal to the maximum reception bandwidth of the end node 20.

[0095] On the other hand, if the device is a relay node 40 having the final transmitter in the communication path, the transmitter of the relay node 40 limits the transmission bandwidth for all transmissions to prevent packet loss at the transmission destination node, such as the end node 20. Specifically, the transmitter of the relay node 40 directly connected to the transmission destination node limits the transmission bandwidth for all communications, namely, the transmission bandwidth for both RT communication and non-RT communication, based on the maximum reception bandwidth of the transmission destination node. For example, a relay node 40 directly connected to the receiving end node 20 limits the maximum transmission bandwidth of the entire transmission unit of the communication port to a threshold value less than or equal to the maximum reception bandwidth of the end node 20.

[0096] By implementing this mechanism, we can virtually eliminate packet loss and the need for packet retransmissions that occur when the originating node sends data beyond the maximum receiving bandwidth of the destination node. As a result, in RT communications, the receiving end node can reliably receive data without missing any packets.

[0097] The "data link layer flow control between adjacent nodes" mechanism regulates transmission between all adjacent nodes. Specifically, sending nodes, such as end nodes 10 and relay nodes 40, perform data link layer flow control between adjacent nodes through the network. For example, data link layer flow control is performed between the communication port of end node 10 and the communication port of relay node 40, and between the communication port of relay node 40 and the communication port of end node 20. This allows sending nodes to transmit data in a manner that prevents overflow of the data link layer receive buffer of the adjacent receiving node, i.e., the data link layer directly received via the network.

[0098] By implementing this mechanism, the sending node can control processing speed based on the available buffer capacity of the receiving node, thereby suppressing packet loss caused by fluctuations in the transmission volume of the communication flow. Furthermore, this flow control generates short communication pauses, which, when frequent pauses occur, can lead to significant communication delays. By also applying the "maximum transmission bandwidth limitation" mechanism, the possibility of packet loss can be further suppressed and the frequency of communication pauses can be reduced.

[0099] The "priority assignment" and "transmission priority control" mechanisms are mechanisms for all nodes to prioritize RT communication transmission over non-RT communication. This "priority assignment" mechanism allows the transmission originating node to prioritize the headers of RT communication transmission frames, distinguishing them from non-RT communication transmission frames, even when the transmission buffers are not differentiated between RT and non-RT transmission buffers.

[0100] Through the "priority control of transmission processing" mechanism, end nodes 10, relay nodes 40, and the like create an RT transmission buffer for RT communication when initializing communication. RT transmission frames are stored in the created RT transmission buffer. This allows RT transmission frames stored in the RT transmission buffer to be transmitted before non-RT transmission frames with no priority, which are stored in the transmission buffer in the conventional technology. In other words, non-RT transmission frames are not transmitted unless a required RT transmission frame is transmitted.

[0101] By implementing the above mechanism, even when RT communication flows and non-RT communication flows coexist on the same network, RT communication can be protected from adverse effects caused by non-RT communication, thereby solving Problem 2.

[0102] [Structure of the control system]

[0103] Next, the configuration of the control system 1 according to the present embodiment in which the above-mentioned mechanism is introduced will be described. Figure 6 This is a network structure diagram of the control system involved in this embodiment. Regarding the control system 1, unlike the control system 1# of the prior art, a RT communication network is constructed that is common to the non-RT communication network. Specifically, the RT communication network uses the communication port, relay node 40 and connection cable of the non-RT communication network in common. The control system 1 is composed of an end node 10, an end node 20, an end node 30 and a relay node 40. The end node 10 and the relay node 40 are respectively as follows: Figure 7 、 Figure 9 That's how it's constructed.

[0104] [Structure of terminal nodes]

[0105] Figure 7 FIG1 is a functional structure diagram of an end node. Compared with the end node 10# in the conventional technology, the end node 10 has the following functional modules that are different.

[0106] Functional modules are modified from existing technologies (RT communication application part 11)

[0107] The functional modules are newly added (RT transmission buffer 16a, RT buffer storage unit 17, RT buffer transmission unit 18, RT transmission unit 23, and RT reception unit 24)

[0108] Unlike RT communication application 11#, RT communication application 11 does not limit the amount of data to be transmitted and notifies transmission unit 14 of RT communication transmission data. However, RT communication application 11 validates the priority of the communication flow used during initialization, indicating that it is an RT communication flow.

[0109] The RT transmit buffer 16a is a transmit buffer for RT communication. Priority is divided into two levels: active and inactive. Therefore, the priority of the RT transmit buffer 16a corresponds to an active transmit buffer, while the priority of the transmit buffer 16 corresponds to an inactive transmit buffer. Furthermore, adding a new RT transmit buffer 16a does not require increasing memory capacity. If there is no available memory, the RT transmit buffer 16a required for RT communication must be prioritized, and the capacity of the transmit buffer 16 is reduced accordingly.

[0110] The RT buffer storage unit 17 is a buffer storage unit 17 # that stores transmission packets in the transmission buffer 16 , with three mechanisms added: “priority assignment,” “priority control of transmission processing,” and “limitation of the maximum transmission bandwidth.”

[0111] As a mechanism for "giving priority," when the communication flow is an RT communication flow, the RT buffer storage unit 17 gives priority to the transmission frame. As a mechanism for "priority control of transmission processing," the RT buffer storage unit 17 stores the prioritized transmission frame in the RT transmission buffer 16a.

[0112] For example, the RT buffer storage unit 17 stores information on priorities set for each of a plurality of communication flows, namely, a communication flow management table (see Figure 8 ), determines whether the priority of the communication flow ID (Identification) of the communication flow sending the transmission frame is valid. If the priority is valid, the RT buffer storage unit 17 assigns priority to the header of the transmission frame and stores the transmission frame in the RT transmission buffer 16a.

[0113] On the other hand, when the communication flow is a non-RT communication flow, that is, when the priority of the communication flow is invalid, the RT buffer storage unit 17 stores the transmission frame in the transmission buffer 16 for non-RT communication, similar to the conventional technology (buffer storage unit 17#).

[0114] According to the mechanism of the "priority control of transmission processing" of the RT buffer storage unit 17, the transmission processing of transmitting the transmission frame stored in the RT transmission buffer 16a is performed before the transmission frame stored in the transmission buffer 16.

[0115] As a mechanism of "limiting the maximum sending bandwidth", the RT buffer storage unit 17 is adjusted by adding a pause (sleep) to the above-mentioned storage processing, etc. in such a way that the storage speed to the RT sending buffer 16a does not exceed the threshold of the sending bandwidth of the RT communication limited based on the maximum receiving bandwidth of the sending destination node.

[0116] The RT buffer storage unit 17 limits the storage rate so that the transmission bandwidth of RT communication does not exceed a threshold value such as the maximum transmission bandwidth. This can delay the processing of transmission requests from higher layers (Layer 3 to Layer 7 protocols and applications). As a result, the RT buffer storage unit 17 can also limit the transmission requests from applications so that they do not exceed a threshold value such as the maximum transmission bandwidth.

[0117] Figure 8This is a diagram of the communication flow management table. The communication flow ID is represented by a combination of identifiers that uniquely identify the sending application on the sending start node and the receiving application on the sending end node for the communication flow connecting the end nodes. For example, the communication flow ID is Figure 8 That means a combination of four numerical values: a combination of the IP address / TCP port number of the own node as the transmission source and a combination of the IP address / TCP port number of the communication partner as the destination.

[0118] exist Figure 8 In the communication flow ID, the TCP port number is used as the port number, but the port number of any transport layer such as UDP (User Datagram Protocol) can also be used. Figure 8 In the example, priority indicates the order of priority of two levels, such as valid / invalid.

[0119] The RT buffer transmitter 18 is a buffer transmitter 18 # that extracts transmission packets in the order in which they are stored in the transmission buffer 16 , generates transmission frames, and stores them in the transmission buffer 21 , with the addition of a “priority control mechanism for transmission processing”.

[0120] The mechanism of "priority control of transmission processing" is composed of the following (1) and (2). As a result, the increase in the delay of RT transmission frames is almost eliminated, and the delay time is basically constant and equal to the transmission processing time of one transmission frame.

[0121] (1) The RT buffer transmission unit 18 does not transmit the transmission frames stored in the transmission buffer 16 until all the transmission frames stored in the RT transmission buffer 16 a are transmitted.

[0122] (2) Every time a transmission frame stored in the transmission buffer 16 is transmitted, the RT buffer transmission unit 18 checks whether no new frame has been stored in the RT transmission buffer 16a during that period. If a new frame has been stored in the RT transmission buffer 16a, the RT buffer transmission unit 18 performs the process (1) above.

[0123] Specifically, as a mechanism for "priority control of transmission processing," when transmission frames are stored in the RT transmission buffer 16a, the RT buffer transmission unit 18 extracts all transmission frames stored in the RT transmission buffer 16a in the order in which they were stored, prior to the transmission frames stored in the transmission buffer 16. The RT buffer transmission unit 18 stores the transmission frames extracted from the RT transmission buffer 16a in the transmission buffer 21.

[0124] If RT transmit buffer 16a has space and not all transmit frames are stored in RT transmit buffer 16a, RT buffer transmitting unit 18 extracts transmit frames stored in transmit buffer 16, similar to the conventional technique (buffer transmitting unit 18#). If a transmit frame is newly stored in the available RT transmit buffer 16a, the extraction destination of the transmit frame is changed from transmit buffer 16 to RT transmit buffer 16a.

[0125] Here, the end node 10 is the end node that serves as the starting point for the transmission process of the communication flow. When the communication partner directly connected to the end node 10 is the relay node 40, the RT buffer transmission unit 18 of the end node 10 limits only the upper limit of the transmission bandwidth of the RT communication that is prioritized for transmission based on the maximum reception bandwidth of the transmission destination node. The reason why it is unnecessary to limit the transmission bandwidth of non-RT communication based on the maximum reception bandwidth of the transmission destination node is that the RT receiving unit 27 of the relay node 40 (see Figure 9 ) cannot be received within the limit band of the communication medium. In this case, the transmission band of non-RT communication is also limited to the available band obtained by subtracting the transmission band of RT communication from the limit band of the communication medium.

[0126] RT transmission unit 23 is a transmission unit 23 # that extracts transmission frames from transmission buffer 21 in the order in which they are stored in transmission buffer 21 and transmits them to the network, with the mechanism of “data link layer flow control between adjacent nodes” added thereto.

[0127] Specifically, as a mechanism of "data link layer flow control between adjacent nodes", when a data link layer flow control request (for example, a request to pause sending in the case of Ethernet) is notified from the directly connected communication object received from the RT receiving unit 24 to the current node (the current RT sending unit 23 of the same communication port), the RT sending unit 23 complies with the flow control request such as pausing the sending process for a specified period.

[0128] Furthermore, when RT receiving unit 24 notifies a directly connected communication partner of a flow control request, RT transmitting unit 23 transmits the flow control request to the directly connected communication partner instead of RT receiving unit 24. Furthermore, when a transmit frame is stored in transmit buffer 21, RT transmitting unit 23 transmits the transmit frame to the network via the physical layer, similar to the conventional technique (transmitting unit 23#).

[0129] RT receiving unit 24 is a mechanism in which “data link layer flow control between adjacent nodes” is added to receiving unit 24 # that extracts received frames from receiving buffer 22 in the order in which they are stored in receiving buffer 22 and notifies receiving unit 19 .

[0130] Specifically, as a mechanism for "data link layer flow control between adjacent nodes," upon receiving a flow control request addressed to the local node from a neighboring node, the RT receiver 24 notifies the local node of the flow control request. Furthermore, if the available capacity of the local node's receive buffer 22 is less than or equal to a specified value, the RT receiver 24 notifies the RT transmitter 23 by transmitting a flow control request to the neighboring node. Furthermore, if a frame extracted from the receive buffer 22 contains receive data, the RT receiver 24 notifies the CPU unit's data link layer upper protocol receiver 19.

[0131] [Relay Node Structure]

[0132] Figure 9 FIG. 4 is a functional block diagram of a relay node. Relay node 40 differs from conventional relay node 40# in the following functional modules.

[0133] Compared with the existing technology, the functional modules (RT transmission unit 28 and RT reception unit 27) have been changed.

[0134] Newly added functional module (RT send buffer 26a)

[0135] The RT transmit buffer 26a is a transmit buffer for RT communication. Like the RT transmit buffer 16a of the end node 10, the RT transmit buffer 26a is a priority-enabled transmit buffer. If there is no free memory, the RT transmit buffer 26a required for RT communication must be prioritized, and the capacity of the priority-enabled transmit buffer 26a is reduced accordingly.

[0136] The RT sending unit 28 extracts frames from the sending buffer 26 of the communication port according to the receiving order of the receiving unit 27# of different communication ports, and adds three structures of "limitation of maximum sending bandwidth", "flow control of data link layer between adjacent nodes" and "priority control of sending processing" to the sending unit 28# sent to the network.

[0137] Specifically, as a mechanism for "limiting the maximum transmission bandwidth," the RT transmitter 28 sets its transmission bandwidth to a value less than or equal to the maximum receiving bandwidth of the directly connected end node during initialization. The mechanism for "data link layer flow control between adjacent nodes" implemented by the RT transmitter 28 is identical to that implemented by the RT transmitter 23 of the end node 10, and therefore its description is omitted. The mechanism for "priority control of transmission processing" implemented by the RT transmitter 28 is identical to that implemented by the RT buffer transmitter 18 of the end node 10, and therefore its description is omitted.

[0138] The RT receiver 27 adds two additional mechanisms to the receiver 27# that extracts stored frames from the receive buffer 25 of the communication port: a "data link layer flow control between adjacent nodes" mechanism and a "priority control for transmission processing" mechanism. The "data link layer flow control between adjacent nodes" mechanism of the RT receiver 27 is identical to that of the RT receiver 24 of the end node 10, and therefore, its description is omitted. The "priority control for transmission processing" mechanism of the RT receiver 27 is identical to that of the RT buffer storage unit 17 of the end node 10, and therefore, its description is omitted.

[0139] [Processing of terminal nodes]

[0140] use Figures 10 to 13 The processing of the end node 10 will be described.

[0141] (Processing of RT Buffer Storage Unit)

[0142] Figure 10 This is a flow chart of the RT buffer storage unit. Figure 10 The processing is as follows: a transmission frame is assigned a priority for each communication flow and stored in a transmission buffer corresponding to two levels of priority: valid / invalid. This processing starts when the transmission unit 14 notifies the RT buffer storage unit 17 of a transmission request.

[0143] like Figure 10 As shown, if the RT buffer storage unit 17 obtains the communication flow ID included in the transmission request (step S1), it searches the communication flow management table (refer to Figure 8 ), obtain the priority of the communication flow ID (step S2). Next, the RT buffer storage unit 17 determines whether the priority is valid (step S3).

[0144] If the priority is determined to be valid (Yes in step S3), the RT buffer storage unit 17 assigns priority to the transmission frame (step S4). The RT buffer storage unit 17 then stores the transmission frame in the RT transmission buffer 16a of the communication port (step S5).

[0145] On the other hand, when it is determined that the priority is invalid (No in step S3), the RT buffer storage unit 17 stores the transmission frame in the conventional transmission buffer 16 of the communication port (step S6).

[0146] Then, after step S5 or step S6, the RT buffer storage unit 17 puts the present process to sleep for a predetermined period and adjusts the storage speed so that the transmission bandwidth of the RT communication does not exceed the threshold, thereby adjusting the transmission process (step S7).

[0147] According to step S7, by limiting the transmission bandwidth of RT communication at end node 10, which is the transmission origin node, it is possible to reliably receive the receiving end node 20 and the like without omission. Furthermore, in step S7, only the transmission bandwidth of RT communication is limited based on the maximum reception bandwidth of the transmission destination node, and the transmission bandwidth of non-RT communication is not limited based on the maximum reception bandwidth of the transmission destination node.

[0148] In addition, priority is assigned through steps S3 and S4, and the priority of the sending processing is controlled through steps S3, S5, and S6, so that even when the RT communication flow and the non-RT communication flow coexist in the same network, the RT communication will not be adversely affected by the non-RT communication.

[0149] (Processing of the RT buffer sending unit)

[0150] Figure 11 This is a flow chart of the RT buffer sending unit. Figure 11 The processing is to extract the transmission frames accumulated in the RT transmission buffer 16a and store them in the transmission buffer 21 of the communication port in priority to the transmission buffer 16. This processing starts when the end node 10 starts. Next, by repeatedly performing a loop process that returns to step S21 after step S23 or step S27, the RT buffer transmission unit 18 regularly monitors whether transmission data packets (transmission frames) are stored in the RT transmission buffer 16a and the transmission buffer 16.

[0151] like Figure 11 As shown, the RT buffer transmission unit 18 determines whether a transmission frame is stored in the RT transmission buffer 16a (step S21).

[0152] Here, if the RT buffer transmitter 18 determines that a transmission frame is stored in the RT transmission buffer 16a (step S21: Yes), it extracts the transmission frame from the RT transmission buffer 16a (step S22). Furthermore, the RT buffer transmitter 18 stores the transmission frame in the transmission buffer 21 of the communication port (step S23), and the process returns to step S21.

[0153] For example, the RT buffer sending unit 18 determines again in step S21 whether a transmission frame is stored in the RT transmission buffer 16a before the transmission buffer 16. This is because the RT buffer storage unit 17 may have stored a transmission frame with a valid priority in the RT transmission buffer 16a during processing by the RT buffer sending unit 18.

[0154] On the other hand, when the RT buffer transmitting unit 18 determines that no transmission frame is stored in the RT transmission buffer 16a (No in step S21), it determines whether a transmission frame is stored in the conventional transmission buffer 16 (step S24). For example, when the RT buffer transmitting unit 18 determines that no transmission frame is stored in the RT transmission buffer 16a, it determines whether a transmission frame is stored in the conventional transmission buffer 16.

[0155] Next, when the RT buffer sending unit 18 determines that a sending frame is stored in the sending buffer 16 of the prior art (step S24Yes), it extracts the sending frame from the sending buffer 16 of the prior art (step S25), and after performing the above-mentioned step S23 on the data link layer lower protocol as the lower layer, returns to step S21.

[0156] On the other hand, when the RT buffer transmission unit 18 determines that no transmission frame is stored in the conventional transmission buffer 16 (No in step S24 ), it does not perform any transmission processing.

[0157] Therefore, if the RT buffer sending unit 18 determines that the processing has not been notified (step S26: No), it sleeps for a predetermined period (step S27) and returns to step S21. Specifically, as long as the transmit frames are stored in any transmit buffer, the RT buffer sending unit 18 continues processing without interruption. If the transmit frames stored in the transmit buffer disappear, the storage is periodically monitored. Furthermore, the reason for determining whether the processing has been notified (step S26) is to stop the RT buffer sending unit 18. If the RT buffer sending unit 18 determines that the processing has been notified (step S26: Yes), the processing ends.

[0158] By controlling the priority of transmission processing through steps S21, S22, S24, and S25, even when RT communication flows and non-RT communication flows coexist on the same network, RT communication can substantially suppress the adverse effects caused by non-RT communication. This solves problem 2.

[0159] (Processing of RT sending unit)

[0160] Figure 12 This is a flowchart of the RT sending unit of the end node. Figure 12 The processing is to associate the flow control of the data link layer and send the frame to the network. This processing starts when the end node 10 starts. Figure 11 Likewise, monitor notifications regularly.

[0161] like Figure 12As shown, the RT transmitter 23 determines whether there is a notification from the RT receiver 24 of the communication port (step S41). Here, if the RT transmitter 23 determines that there is a notification from the RT receiver 24 of the communication port (step S41: Yes), it determines whether the notification is a request from the directly connected communication partner to suspend transmission to the RT transmitter 23 (step S42).

[0162] Then, when the RT transmitter 23 determines that the notification is a request to suspend transmission to the RT transmitter 23 from the directly connected communication partner (step S42: Yes), it suspends transmission for a predetermined period (step S43) and returns to step S41.

[0163] Here, if the notification of the request to suspend transmission to the RT transmitter 23 is determined not to be from the directly connected communication partner (No in step S42), it means that the notification is a request to suspend transmission from the RT receiver 24 of the communication port to the directly connected communication partner. In this case, the RT transmitter 23 transmits the request to suspend transmission to the directly connected communication partner (step S44), and the process returns to step S41.

[0164] Furthermore, in step S41 , when the RT transmitter 23 determines that there is no notification from the RT receiver 24 of the communication port (step S41 No), it determines whether a transmission frame is stored in the transmission buffer 21 (step S45 ).

[0165] Here, when determining that a transmission frame is stored in the transmission buffer 21 (step S45: Yes), the RT transmission unit 23 extracts the transmission frame and transmits it to the network (step S46), and then returns to step S41.

[0166] On the other hand, if the RT transmitter 23 determines that no transmission frame is stored in the transmission buffer 21 (step S45 No), no transmission processing is performed, and steps S47 and S48 are executed. In addition, steps S47 to S48 are the same as steps S26 to S27, and their description is omitted.

[0167] By performing data link layer flow control between adjacent nodes through steps S41 to S44, the sending node can control the processing speed depending on the free capacity of the buffer of the receiving node, thereby suppressing the packet loss caused by fluctuations in the sending volume of the communication flow.

[0168] (Processing of RT receiving unit)

[0169] Figure 13 This is a flowchart of the RT receiving unit of the end node. Figure 13The process of is to associate the flow control of the data link layer and pass the data of the received frame to the upper layer. This process starts when the reception notification comes from the network via the physical layer which is the lower layer.

[0170] like Figure 13 As shown, the RT receiving unit 24 determines whether a request to suspend transmission is received from a directly connected communication partner in a received frame received through the communication flow (step S61). Here, if the RT receiving unit 24 determines that a request to suspend transmission is received from a directly connected communication partner in a received frame (step S61: Yes), it performs a process similar to step S43, but differs in that it notifies the request to suspend transmission.

[0171] Specifically, the RT receiving unit 24 notifies the RT transmitting unit 23 of the communication port that received the request to suspend transmission, thereby suspending the execution of the transmission process (step S62). On the other hand, if the RT receiving unit 24 determines that there is no request to suspend transmission from the directly connected communication partner in the received frame (step S61 No), it executes step S63.

[0172] Next, the RT receiving unit 24 determines whether the free capacity of the receive buffer 22 of the communication port that stores the received frames in the communication flow is less than or equal to a predetermined value (step S63). Here, if the RT receiving unit 24 determines that the free capacity of the receive buffer 22 of the communication port is less than or equal to the predetermined value (step S63: Yes), it performs a process similar to step S44, but differs in that it notifies a request to suspend transmission.

[0173] Specifically, the RT receiving unit 24 notifies the RT transmitting unit 23 of the received communication port to transmit a request to the directly connected communication partner to suspend transmission of received frames (step S64). On the other hand, if the RT receiving unit 24 determines that the free capacity of the receive buffer 22 of the received communication port is greater than a predetermined value (step S63 No), the RT receiving unit 24 executes step S65.

[0174] Then, after step S63 or step S64, the RT receiving unit 24 extracts data from the received frame and notifies the data link layer upper protocol receiving unit 19, which is an upper layer receiving unit (step S65).

[0175] By performing data link layer flow control between adjacent nodes through steps S61 to S64, the sending node can control the processing speed depending on the free capacity of the buffer of the receiving node, thereby suppressing the packet loss caused by fluctuations in the sending volume of the communication flow.

[0176] 〔Processing of Relay Node〕

[0177] use Figure 14 as well as Figure 15 The processing of the relay node 40 will be described.

[0178] (Processing of RT sending unit)

[0179] Figure 14 This is a flowchart of the RT sending unit of the relay node. Figure 14 The process of is to associate the flow control of the data link layer and send the transmission frame to the network. This process starts when the relay node 40 is started.

[0180] Figure 14 Steps S81 to S84 shown are the same as steps S41 to S44 described above, and steps S90 to S91 are the same as steps S26 to S27, so their descriptions are omitted.

[0181] Step S85 is the same as step S21 , step S86 is the same as step S7 , and step S88 is the same as step S24 , so their descriptions are omitted.

[0182] Step S87 is similar to step S22, but differs in that the transmission frame extracted from the transmission buffer is transmitted. Specifically, after executing step S86, if a transmission frame exists in the RT transmission buffer 26a, the RT transmission unit 28 extracts the transmission frame in priority over the transmission buffer 26a and transmits it to the network via the physical layer (step S87), and then returns to step S81.

[0183] On the other hand, step S89 is similar to step S25, but differs in that the transmission frame extracted from the transmission buffer is transmitted. Specifically, if the RT transmission unit 28 determines that the RT transmission buffer 26a is free and a transmission frame is stored in the conventional transmission buffer 26 (step S88: Yes), it extracts the transmission frame and transmits it to the network via the physical layer (step S89), and then returns to step S81.

[0184] In step S86, if the transmission bandwidth of relay nodes 40 adjacent to transmission destination nodes such as end nodes 20 is limited to a value less than or equal to the maximum reception bandwidth of the transmission destination node, the receiving end nodes 20 and the like can reliably receive all packets without omission in RT communications. Specifically, by setting the overall transmission bandwidth of the RT transmitter 28 of relay node 40, the last transmitter following the communication path utilized for transmission processing, including non-RT communications, to a value less than or equal to the maximum reception bandwidth of the end nodes 20 adjacent to relay node 40, packet loss can be suppressed.

[0185] As described above, the RT transmitter 28 of the relay node 40 adjacent to the transmission destination node has stricter transmission bandwidth restrictions than the RT transmitter 23 of the end node 10, which is the transmission origin node. Specifically, in the case of the transmission origin node, only the transmission bandwidth for RT communication is restricted based on the maximum reception bandwidth of the transmission destination node. In the case of the relay node 40 adjacent to the transmission destination node, the total transmission bandwidth for RT communication and non-RT communication is restricted based on the maximum reception bandwidth of the transmission destination node.

[0186] The reason is as follows. When the receiving node's directly connected communication partner is a relay node 40, such as an L2SW, the relay node 40 can receive data up to the communication medium's bandwidth limit, enabling reliable reception without packet loss. Consequently, the RT transmitter 28 does not need to limit the transmission bandwidth of non-RT communication based on the maximum reception bandwidth of the destination node.

[0187] However, when the receiving node's directly connected communication partner is a transmission destination node, such as an end node 20 or an assembly machine, the maximum receiving bandwidth of the transmission destination node is significantly smaller than the communication medium's bandwidth limit. Therefore, the transmission destination node cannot prioritize receiving RT communications. Therefore, when the transmission destination node receives all transmission frames, including those for non-RT communications, the RT transmitter 28 must prevent packet loss.

[0188] Furthermore, data link layer flow control is performed between adjacent nodes through steps S81 to S84, whereby the sending node can control the processing speed depending on the free capacity of the buffer of the receiving node, thereby suppressing the packet loss caused by fluctuations in the sending volume of the communication flow.

[0189] Furthermore, by controlling the priority of the transmission process in steps S85 and S87 to S89, even when RT communication flows and non-RT communication flows coexist in the same network, RT communication can be prevented from being adversely affected by non-RT communication.

[0190] (Processing of RT receiving unit)

[0191] Figure 15 This is a flowchart of the RT receiving unit of the relay node. Figure 15 The process is to associate the flow control of the data link layer with the storage of the received frame data in the RT transmission buffer 26a / conventional transmission buffer 26. This process starts when a reception notification is received from the network via the physical layer, which is the lower layer.

[0192] Figure 15Steps S101 to S104 are the same as steps S61 to S64 described above, and steps S108 to S109 are the same as steps S5 to S6 described above, so their descriptions are omitted. Step S107 is the same as step S3, so its description is omitted.

[0193] Steps S105 and S106 are processes dedicated to the relay node 40. Figure 15 After the "Yes" condition in step S103 or step S104, the RT receiving unit 27 searches for the communication port of the relay destination based on the destination MAC address (step S105). For example, if the destination MAC address assigned to the transmission frame extracted from the reception buffer 25 is not the relay node 40, the RT receiving unit 27 searches for the communication port of the relay destination using the management table 29 using the MAC address as a key to find the communication port of the relay destination.

[0194] Next, the RT receiving unit 27 obtains the priority assigned to the header of the transmission frame (step S106). For example, the RT receiving unit 27 extracts the priority from the header of the transmission frame and stores it in the RT transmission buffer 26a if the priority is valid, and stores it in the transmission buffer 26 if it is not.

[0195] By performing data link layer flow control between adjacent nodes through steps S101 to S104, the sending node can control the processing speed depending on the free capacity of the buffer of the receiving node, thereby suppressing the packet loss caused by fluctuations in the sending volume of the communication flow.

[0196] Furthermore, by controlling the priority of the transmission process in steps S107 to S109 , even when RT communication flows and non-RT communication flows coexist in the same network, RT communication can be prevented from being adversely affected by non-RT communication.

[0197] [Basic Effect]

[0198] Control system 1 not only solves problems 1 and 2 but also provides the following benefits. The mechanisms of control system 1 can be added to any communication protocol used. Therefore, for example, by adding to a general-purpose protocol such as TCP / IP, RT communication can be implemented for TCP / IP. While an example of adding a mechanism for "flow control at the data link layer between adjacent nodes" is shown, it can also be implemented in other layers of the OSI reference model, such as the network layer and the physical layer.

[0199] Control system 1 protects RT communications from network attacks such as DoS (Denial of Service) attacks and ping bombs. Even if an end node 10 is attacked, its RT communication application unit 11 continues to operate normally, without adversely affecting the RT communications used by RT communication application unit 11. However, in some cases, communication frames from network attacks are not prioritized. Furthermore, control system 1 is independent of network topology. It can be applied to network topologies such as ring and bus, not just star topologies.

[0200] [Applied Invention]

[0201] Figure 6 The network structure of the RT communication of the control system 1 shown is the minimum structure of the basic invention consisting of two end nodes and one relay node, but it has the effect of being expandable to a general structure of the application invention described below.

[0202] (Applied Invention 1)

[0203] Applied Invention 1 connects multiple relay nodes 40 equipped with the same problem-solving mechanism as the basic invention. However, except for the relay nodes 40 directly connected to the end node 20 as the transmission destination node, no "maximum transmission bandwidth limitation" mechanism is implemented.

[0204] (Applied Invention 2)

[0205] Compared to Applied Invention 1, Applied Invention 2 does not add any more transmission origin nodes for RT communication, but rather adds RT communication flows. Specifically, the RT buffer storage unit 17 adjusts the storage speed and allocates the transmission bandwidth to each RT communication flow so that the total maximum transmission bandwidth of multiple RT communication flows at the transmission origin node is less than or equal to the maximum reception bandwidth of the transmission destination node.

[0206] (Applied Invention 3)

[0207] Applied Invention 3, compared to Applied Invention 2, further adds a transmission origin node for RT communication. Before communication begins, the maximum transmission bandwidths of the RT communication flows among the multiple transmission origin nodes are allocated so that the total value of the maximum transmission bandwidths of the RT communication flows of the multiple transmission origin nodes is less than or equal to the maximum receiving bandwidth of the transmission destination node. The maximum transmission bandwidth of each transmission origin node is pre-set.

[0208] During communication, when multiple end nodes 10 perform RT communication for the same end node 10, the RT buffer storage unit 17 adjusts the storage speed so that the total value of the maximum sending bandwidth of the RT communication of the end node 10 on the sending side is less than or equal to the maximum receiving bandwidth of the end node 10 on the receiving side.

[0209] (Applied Invention 4)

[0210] Applied Invention 4, in contrast to Applied Invention 3, further addresses multiple transmission destination nodes. Applied Invention 4 incorporates the "data link layer flow control" mechanism of the basic invention into all transmission destination nodes. Furthermore, the "maximum transmission bandwidth limitation" mechanism of the basic invention is incorporated into all relay nodes 40 adjacent to the transmission destination nodes.

[0211] (Applied Invention 5)

[0212] Compared to Application Invention 4, Application Invention 5 further expands the priority level from two levels (valid / invalid) to three or more levels, thereby managing the RT performance (priority) of RT communication flows at multiple levels. When the RT performance of RT communication is expanded to multiple levels (high and low), the following functions are added to the transmission origin node and relay node 40.

[0213] First, the addition of functions to the transmission origin node will be described. In Applied Invention 5, as a solution to Problem 2, two functional extensions are implemented: the "priority assignment" mechanism and the "priority control of transmission processing" mechanism incorporated into the basic invention at the transmission origin node.

[0214] Specifically, to implement this "priority assignment" mechanism, the RT buffer storage unit 17 assigns a numerical value indicating the priority ranking to the transmission frame. Specifically, the RT buffer storage unit 17 assigns a numerical value representing the RT performance level of RT communication corresponding to each priority level to the header of the RT communication transmission frame, thereby enabling the RT performance level of RT communication to be known. For example, if there are eight RT performance levels, the highest RT performance level is represented as 8, and the lowest RT performance level is represented as 1.

[0215] Furthermore, regarding the mechanism of "priority control of transmission processing", specifically, the RT buffer storage unit 17 and the RT buffer transmission unit 18 perform storage processing and extraction processing so that frames with higher priority are transmitted first among the prioritized RT communication frames.

[0216] For example, the RT buffer sending unit 18 creates an RT send buffer 16a for each RT performance level of RT communication and stores the transmit frames in the order of transmission requests in the RT send buffer 16a corresponding to the RT performance level specified in the header of the transmit frame. The RT buffer sending unit 18 then extracts the transmit frames in the order in which they were stored, starting with the RT send buffer 16a with the highest RT performance level. If the RT buffer sending unit 18 determines that no transmit frames are stored in the RT send buffer 16a with the highest RT performance level and that all RT send buffers 16a are available, it extracts the transmit frames stored in the RT send buffer 16a with the next highest RT performance level.

[0217] However, whenever the RT buffer sending unit 18 executes the above Figure 11 During the loop processing, the presence of stored transmission frames is checked in order from the RT transmission buffer 16 a having a higher priority, and transmission frames of RT communication having a higher priority are preferentially extracted and stored in the transmission buffer 21 .

[0218] Furthermore, the mechanism of "limiting the maximum transmission bandwidth," which is a solution to Problem 1 of the end node 10 in Applied Invention 5, is the same as that in Applied Invention 3. Specifically, when multiple end nodes 10 transmit RT communication transmission frames to the same end node 10, the RT buffer storage unit 17 adjusts the storage rate so that the total value of the maximum transmission bandwidths of the RT communications of the transmitting end nodes 10 is less than or equal to the maximum reception bandwidth of the receiving end node 10.

[0219] Furthermore, the mechanism for "data link layer flow control between adjacent nodes," which is a solution to Problem 1 of end node 10 in Applied Invention 5, is the same as that of the Basic Invention. Specifically, the RT transmitter 23 and RT receiver 24 of end node 10, which transmit and receive RT communication frames, perform data link layer flow control, similar to the Basic Invention.

[0220] Next, the functions added to the relay node 40 will be described. In applied invention 5, as a solution to problem 2, the "priority control of transmission processing" mechanism of the basic invention incorporated into the relay node 40 is extended in the same manner as the function extension performed on the transmission origin node.

[0221] Specifically, the mechanism for this "priority control of transmission processing" is the same as the functional expansion of the transmission origin node. That is, the RT transmission unit 28 performs storage processing and extraction processing so that frames with higher priority are transmitted first among the prioritized RT communication frames.

[0222] For example, the RT transmitter 28 creates an RT transmit buffer 26a for each RT performance level of RT communication and stores transmit frames in the order they were received in the RT transmit buffer 26a corresponding to the RT performance level specified in the header of the transmit frame. The RT transmitter 28 then extracts transmit frames in the order they were stored, starting with the RT transmit buffer 26a with the highest RT performance level. If the RT transmitter 28 determines that no transmit frames are stored in the RT transmit buffer 26a with the highest RT performance level or that all RT transmit buffers 26a are empty, it extracts transmit frames stored in the RT transmit buffer 26a with the next highest RT performance level.

[0223] However, whenever the RT transmitter 28 executes the above Figure 14 During the loop processing, the presence or absence of stored transmission frames is checked in order from the RT transmission buffer 26a having the highest priority, and the transmission frames of the RT communication having the higher priority are preferentially extracted.

[0224] Furthermore, if the priority assigned to the header of the transmission frame is valid, the RT receiving unit 27 stores the transmission frame in the RT transmission buffer 26a of the same RT performance level as the priority. Furthermore, the mechanism of "limiting the maximum transmission bandwidth" and the mechanism of "flow control at the data link layer between adjacent nodes" as a solution to Problem 1 of the relay node 40 in Applied Invention 5 are the same as those of the basic invention.

[0225] As described above, in Applied Invention 5, as a solution to Problem 2, multiple RT transmit buffers 16a corresponding to respective priorities (e.g., "High," "Medium," and "Low") are used for the RT transmit buffer 16a of the end node 10. Furthermore, the RT buffer transmitting unit 18 stores transmit frames in the RT transmit buffers 16a corresponding to the priorities of the communication flows, and transmits them in order, starting with the transmit frames stored in the RT transmit buffers 16a with the highest priority.

[0226] Furthermore, in Applied Invention 5, as a solution to Problem 1, the end node 10 is equipped with a "maximum transmission bandwidth limitation" mechanism and a "data link layer flow control between adjacent nodes" mechanism. The relay node 40 is also equipped with the same mechanism as the end node 10.

[0227] Here, communication delay increases as priority levels change from "High" to "Low." In the case of "Medium," communication delay varies due to high traffic volume, while in the case of "Low," communication delay varies due to a mix of high and medium traffic volumes. Therefore, the increase in communication delay also increases as priority levels change from "High" to "Low." Furthermore, communication delay and its fluctuation are equal to the time that transmitted frames are stored in the buffer, resulting in a similar tendency for buffer overflow and packet loss.

[0228] The tendency for the increase in communication delay to correspond to the priorities of "high", "medium" and "low" is because the solution to problem 1 can prevent packet loss in a common manner without distinguishing between "high", "medium" and "low" in such a way that packet loss does not occur due to factors other than the designation of the priority.

[0229] Therefore, in a network environment where packet loss rarely occurs when implementing the solution to Problem 1, the solution to Problem 2, by simply dividing priorities into multiple levels, can account for differences in RT communication characteristics (communication delay time and probability of packet loss) according to the levels. In other words, according to Applied Invention 5, the communication delay time and probability of packet loss for high-priority RT communications can be made shorter than those for low-priority RT communications.

[0230] [Hardware Structure]

[0231] use Figure 16 The hardware configuration of the end node 10 will be described. Figure 16 This is a diagram of the hardware structure. The end node 10 has a device 10a, a processor 10b, a HDD (Hard Disk Drive) 10c, and a memory 10d. The device 10a has a communication port for communicating with other nodes. The processor 10b reads the program from the HDD 10c and expands it to the memory 10d, and executes Figure 7 The relay node 40 and the like may also have the same hardware structure.

Claims

1. A device, wherein: The device comprises a processing unit, The processing unit stores the transmission frame transmitted through the communication flow in an RT transmission buffer for RT communication when the priority of the communication flow is valid, and stores the transmission frame in a transmission buffer for non-RT communication when the priority is invalid. RT refers to real time. Compared with the sending frame stored in the sending buffer, the sending frame stored in the RT sending buffer is sent first, Perform data link layer flow control between directly connected communication partners.

2. The device according to claim 1, wherein When the device is a transmission origin device that becomes the origin of a transmission process related to transmission of the transmission frame, The processing unit assigns the priority to the transmission frame based on information on each priority set for each of a plurality of communication flows when the priority is valid.

3. The device according to claim 1, wherein The processing unit performs the following processing: Until all the sending frames stored in the RT sending buffer are sent, the sending frames stored in the sending buffer are not sent, Whenever the sending frame stored in the sending buffer is sent, it is confirmed whether no new frame is stored in the RT sending buffer during this period. If the new frame is stored in the RT sending buffer, the sending frame stored in the sending buffer will not be sent until all the sending frames stored in the RT sending buffer are sent.

4. The device according to claim 1, wherein When the device is a transmission origin device that becomes the origin of a transmission process related to transmission of the transmission frame, The processing unit sets the transmission band of the RT communication based on the maximum reception band of a transmission destination device serving as a destination of the transmission process, and does not limit the transmission band of the non-RT communication based on the maximum reception band of the transmission destination device.

5. The device according to claim 1, wherein In a case where the device is directly connected to a transmission destination device that is the destination of the transmission process related to the transmission of the transmission frame, The processing unit sets both the transmission band for the RT communication and the transmission band for the non-RT communication based on the maximum reception band of a transmission destination device serving as a destination of the transmission process.

6. The device according to any one of claims 1 to 5, wherein: The processing unit suspends a transmission process related to transmission of the transmission frame for a predetermined period when a request to suspend transmission is received from the directly connected communication partner to the processing unit.

7. The device according to any one of claims 1 to 5, wherein: The processing unit requests the directly connected communication partner to suspend transmission of the received frames when a free capacity of a receive buffer storing received frames received through the communication flow is equal to or smaller than a predetermined value.

8. The device according to claim 4 or 5, wherein: The RT sending buffer is a plurality of RT sending buffers corresponding to respective priorities, The processing unit stores the transmission frame in an RT transmission buffer corresponding to the priority of the communication flow among the plurality of RT transmission buffers, The transmission frames are sequentially transmitted starting from the transmission frames stored in the RT transmission buffer with a high priority among the plurality of RT transmission buffers.

9. A method wherein: The computer performs the following processing: When the priority of the communication flow is valid, the transmission frame sent through the communication flow is stored in the RT transmission buffer for RT communication. When the priority is invalid, the transmission frame is stored in the transmission buffer for non-RT communication. Compared with the sending frame stored in the sending buffer, the sending frame stored in the RT sending buffer is sent first, Perform data link layer flow control between directly connected communication partners.

10. A computer-readable recording medium having a program recorded thereon, wherein: The program causes the computer to execute the following processing: When the priority of the communication flow is valid, the transmission frame sent through the communication flow is stored in the RT transmission buffer for RT communication. When the priority is invalid, the transmission frame is stored in the transmission buffer for non-RT communication. Compared with the sending frame stored in the sending buffer, the sending frame stored in the RT sending buffer is sent first, Perform data link layer flow control between directly connected communication partners.