Computer-readable recording medium, information processing method, and information processing apparatus

The data link layer frame is sent between independent communication paths through the dual-path dual-output method, which solves the problem of insufficient interrupt time for high real-time communication in the prior art, and realizes highly reliable and highly available process control communication.

CN119316453APending Publication Date: 2025-01-14YOKOGAWA ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410920274.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-11
Filing Date
2024-07-10
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

The prior art cannot effectively deal with the convergence of interrupt time after communication exceptions in high real-time communication, resulting in insufficient control systems in terms of high availability and high real-time performance.

Method used

Using the dual-path dual-output method, by copying the data link layer frame and sending it between two physically independent communication paths, ensuring high reliability and high availability of data communication between the two paths, and at the data link layer Perform serial number issuance and repeated detection to reduce communication interruption time.

Benefits of technology

High reliability and high availability communication in process control communication is realized, while reducing communication interruption time and meeting the requirements of high real-time communication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316453A_ABST
    Figure CN119316453A_ABST
Patent Text Reader

Abstract

The present invention relates to a computer-readable recording medium, an information processing method, and an information processing apparatus which ensure highly reliable and highly available communication with respect to process control communication and perform highly real-time communication. A computer-readable recording medium on which is recorded an information processing program that causes an information processing device to execute: in response to acceptance of a transmission request for data for process control, replicating a transmission frame of a data link layer to generate a first transmission frame and a second transmission frame; and sending the first sending frame to the first NIC, sending the second sending frame to the second NIC, sending the first sending frame in the first NIC to the network, and sending the second sending frame in the second NIC to the network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Process control systems such as DCS (Distributed Control System), which are equipment used to operate workshops and factories, are systems in which a controller collects various state quantities (such as pressure, temperature, flow, etc.) of an industrial process from sensors (thermometers, flow meters, etc.) at a constant period (for example, a period of 1 second), executes control logic created by the user, and operates actuators (valves, etc.) based on the results, thereby automatically operating workshops and factories.

[0003] The control logic executed by this control system is executed by interactive cooperation between controllers when executing actions on multiple controllers. The constant cycle control processing based on this control logic is realized through communication between the controller and the input and output devices of sensors and actuators called C2D communication, and communication between multiple controllers called C2C communication.

[0004] This constant cycle control process is required to be continued stably for a long time, so the control system requires both high availability and high real-time performance. Therefore, for the control communication executed by calling the constant cycle control process, not only high reliability communication but also high availability communication and high real-time communication are required.

[0005] Here, highly reliable communication refers to, for example, communication in which the transmitted data is not lost and the data is transmitted in the order in which the data is transmitted without causing bit flips, and the data reaches the communication partner reliably and accurately. In addition, highly available communication refers to, for example, communication in which two physically independent communication paths are prepared in advance, and in the event of a communication abnormality such as a single failure such as a failure of the NIC or relay device or a disconnection of the communication cable in the middle of the current path, the control system itself uses an alternative path to restore communication. In addition, high real-time communication refers to, for example, communication in which data exchange with the communication partner is completed within the required time.

[0006] In addition, the devices controlled by the control system are not limited to DCS, but also include SCADA (Supervisory Control And Data Acquisition), PLC (Programmable

[0007] Logic Controller), etc., for example, also includes devices embedded in a separate controller (rotating machine, etc.), barcode readers in the batch workshop area, weighing machines, etc. In addition, the devices controlled by the control system can also be applied to computer / network systems such as PCs (Personal Computers) and general-purpose embedded instruments, and systems that require high-speed switching to alternative paths when the communication path is abnormal.

[0008] In addition, a workshop or a factory is an example of various workshops or factories for petroleum, petrochemical, chemical, gas, etc., and includes workshops or factories with various facilities for obtaining products. In addition, products are, for example, LNG (Liquefied Natural Gas), resins (plastics, nylon, etc.), chemical products, etc. In addition, facilities are, for example, factory facilities, mechanical facilities, production facilities, power generation facilities, storage facilities, facilities at wellheads for extracting oil, natural gas, etc.

[0009] Non-patent document 1: Mr. Demachi, 3 outsiders, "リアルタイム·プラント·

[0010] ネットワーク·システムVnet / IP", Yokogawa Technical Report, Vol.49, No.2, 2005

[0011] However, in high real-time communication, the communication interruption time from the occurrence of a communication anomaly to the restoration of communication is required to be within the control scan cycle (eg, 1 second). However, the current control method cannot fully meet the requirements for high real-time communication. Summary of the invention

[0012] An object of the present invention is to ensure highly reliable and highly available communication for process control communication and to perform highly real-time communication.

[0013] A computer-readable recording medium according to one aspect records an information processing program, wherein the information processing program causes an information processing device to execute the following processing: in response to receiving a transmission request for process control data, copy a transmission frame of a data link layer to generate a first transmission frame and a second transmission frame, and transmit the first transmission frame to a first NIC (Network Information Network Interface Card).

[0014] Interface Card), sending the second sending frame to a second NIC, sending the first sending frame in the first NIC to a network, and sending the second sending frame in the second NIC to the network.

[0015] Regarding an information processing method involved in one aspect, an information processing device performs the following processing: in response to accepting a request to send data for process control, copying a send frame of a data link layer to generate a first send frame and a second send frame, sending the first send frame to a first NIC, sending the second send frame to a second NIC, sending the first send frame in the first NIC to a network, and sending the second send frame in the second NIC to the network.

[0016] An information processing device involved in one aspect has a dual output unit, which performs the following processing: in response to accepting a request to send data for process control, copying a send frame of a data link layer to generate a first send frame and a second send frame, sending the first send frame to a first NIC, sending the second send frame to a second NIC, sending the first send frame in the first NIC to a network, and sending the second send frame in the second NIC to the network.

[0017] Effects of the Invention

[0018] According to one embodiment, it is possible to ensure highly reliable and highly available communication for process control communication and to perform highly real-time communication. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] Figure 1 It is a diagram showing a configuration example of a control system of the prior art.

[0020] Figure 2 It is a diagram showing a configuration example of a conventional information processing device 10 .

[0021] Figure 3 1 is a diagram showing an example of the highly reliable communication information 50 .

[0022] Figure 4 This is a diagram showing an example of the format of a transport layer data packet.

[0023] Figure 5 This is a diagram showing an example of the format of a data link layer frame.

[0024] Figure 6 This is a flowchart showing the flow of the delivery confirmation processing by the transmission unit 26 based on the delivery confirmation.

[0025] Figure 7 This is a flowchart showing the flow of the delivery confirmation processing by the receiving unit 27 based on the delivery confirmation.

[0026] Figure 8 This is a flowchart showing the flow of a reception process of a confirmation response by the reception unit 27 based on the delivery confirmation.

[0027] Fig. 9 It is a diagram showing a configuration example of a control system according to the basic present invention.

[0028] Fig.10 1 is a diagram showing a configuration example of an information processing device 10 according to the present invention.

[0029] Fig.11 It is a flowchart showing the flow of the dual-path dual-output processing by the dual-path dual-output unit 45 .

[0030] Fig.12 It is a diagram showing a configuration example of an information processing device 10 to which the present invention is applied.

[0031] Fig.13 2 is a diagram showing an example of the path redundancy information 51 .

[0032] Fig.14 1 is a flowchart showing the flow of the simple serial number issuance process by the simple serial number issuance unit 46 .

[0033] Fig.15 : is a flowchart showing the flow of the simple duplication detection process by the simple duplication detection unit 47 .

[0034] Fig.16 It is a diagram showing a hardware configuration example of the information processing device 10 according to the present embodiment. DETAILED DESCRIPTION

[0035] Below, embodiments of the computer-readable recording medium, information processing method, and information processing device disclosed in the present application are described in detail based on the accompanying drawings. In addition, the present invention is not limited by the embodiments. In addition, the same reference numerals are marked on the same elements, and repeated descriptions are appropriately omitted, and each embodiment can be appropriately combined within the scope of non-contradiction.

[0036] This embodiment solves the problems of the process control system of the prior art. Therefore, this embodiment can be constructed based on the structure of the control system of the prior art. Therefore, the control system of the prior art is first described.

[0037] (Structure of control system of prior art)

[0038] Figure 1 FIG. 2 is a diagram showing a structural example of a control system of the prior art. Figure 1As shown, the control system of the prior art is a system in which a communication node 1 and a communication node 2 are connected via a NIC (Network Interface Card) and an L2SW (Layer 2 Switch) so as to be able to communicate with each other. The NIC is, for example, a communication unit that controls communication with other devices and instruments and transmits and receives data to and from a network cable, and is a communication interface such as a network interface card. The L2SW is, for example, a network instrument having data transmission capability and a bridge function of the data link layer of the OSI (Open System Interconnection) reference model.

[0039] In addition, the network between communication node 1 and communication node 2 can be wired or wireless, such as a local area network, the Internet, or other communication networks. In addition, the network is not a single network, such as a local area network, the Internet, etc., and can be formed via network devices such as gateways and other devices (not shown).

[0040] The communication node 1 and the communication node 2 are, for example, components of a control system, and are controllers, input / output devices, etc. In the following, the communication node 1 and the communication node 2 are sometimes collectively referred to as "information processing device 10". The information processing device 10 may be, for example, an information processing device such as a desktop PC, a notebook PC, or a server computer managed by a manager of a workshop or a factory. Alternatively, the information processing device 10 may be, for example, a cloud computer device managed by a service provider that provides cloud computing services.

[0041] In addition, if Figure 1 As shown, the communication node 1 and the communication node 2 each have, for example, an application program. The application program is, for example, a control processing unit that controls communication with other devices or equipment.

[0042] (Functional Structure of Information Processing Device 10 of Conventional Technology)

[0043] Next, the functional structure of the information processing device 10 that is the execution subject of the conventional technology will be described. Figure 2 1 is a diagram showing a configuration example of a conventional information processing device 10. Figure 2 As shown, the information processing device 10 includes, for example, a CPU unit 20 as a control unit and a NIC 40 as a communication unit. In addition, the information processing device 10 includes, for example, a storage unit that has a function of storing various data such as high-reliability communication information 50 and various programs, and implements this function using a storage device such as a memory or a hard disk.

[0044] First, the information processing device 10 on the data transmission side, that is, each processing unit of the communication node 1 is described. The control processing unit 21 of the CPU unit 20 is, for example, an application program that executes control processing, and outputs a transmission request to the CPU transmission unit 22 to execute control processing for C2C communication and C2D communication.

[0045] The CPU sending unit 22 includes, for example, a highly reliable communication sending unit 24, a network layer sending unit 34, and a data link layer sending unit 36, receives a sending request from the control processing unit 21, and performs highly reliable communication. In addition, highly reliable communication, for example, refers to a communication process with high reliability of communication data. Highly reliable communication, for example, includes a delivery confirmation process, a flow control process, an error detection process, etc. of communication data. Among the communication protocols that implement highly reliable communication, there is, for example, TCP (Transmission Control Protocol).

[0046] Here, the delivery confirmation processing, flow control processing, and error detection processing are described in more detail. The delivery confirmation processing is, for example, the following processing, that is, the sending node performs delivery confirmation in order to ensure that the sent data reaches the receiving node reliably, and resends if the delivery confirmation is not obtained within a certain period of time. In addition, the delivery confirmation is to make the receiving node return the confirmation response of the received data to the sending node, for example, implemented by TCP.

[0047] The flow control process is, for example, a process in which the sending node adjusts the amount of data packets sent according to the reception processing capability of the receiving node in order to prevent the receiving node from receiving the sent data incorrectly, and is implemented by TCP, for example.

[0048] Error detection processing is, for example, a process for confirming whether the receiving node has not received damaged data that has generated bit errors. For example, there are CRC (Cyclic Redundancy Check) for detecting errors in Ethernet (registered trademark) frames at the data link layer in the OSI reference model, and checksums for detecting errors in each header of IP at the network layer and TCP at the transport layer. In addition, the CRC value of Ethernet is attached to the end of a frame called FCS (Frame Check Sequence), and the checksum values ​​of IP and TCP are assigned to the header. The CRC value and the checksum value are calculated at the sending node according to their respective algorithms, and the results are assigned to the header, which are compared with the results calculated again at the receiving node. If they are consistent, it is judged that the data is not damaged, and if they are inconsistent, it is judged that the data is damaged. Therefore, when the amount of communication data is large, the processing load of the CPU component increases.

[0049] The highly reliable communication transmission unit 24 has a function as an upper layer of the application layer relative to the transport layer in the OSI reference model. The highly reliable communication transmission unit 24 has, for example, a transmission unit 26 for delivery confirmation, a transmission unit 30 for flow control, and a transmission unit 32 for error detection, and functions equivalent to the above functions are installed in the TCP of the transport layer.

[0050] The sending unit 26 for delivery confirmation includes, for example, a sequence number issuing unit 28. When sending data, the data is sent after calling the sequence number issuing unit 28 for processing. The sequence number issuing unit 28, for example, assigns a sending sequence number managed and stored in the high-reliability communication information 50 to the header of the data packet in order to uniquely identify the sent data, and updates the sending sequence number stored in the high-reliability communication information 50 for the next data transmission. In addition, when the sending unit 26 for delivery confirmation does not receive a confirmation response for the sent data from the receiving unit 27 for delivery confirmation on the data receiving side within a certain period of time, the data is sent again. In addition, when sending a confirmation response, for example, the confirmation response is assigned a confirmation response number stored in the high-reliability communication information 50 and sent to the header of the data packet.

[0051] Here, the highly reliable communication information 50 will be described in more detail. The highly reliable communication information 50 is information stored in, for example, a storage unit of the information processing device 10, and is mutually referenced and updated by the CPU transmission unit 22 and the CPU reception unit 23. Figure 3 is a diagram showing an example of high-reliability communication information 50. Figure 3 As shown, for example, as management information for each communication process (communication flow), information such as the communication process ID, sequence number, timeout period of the resending timer, confirmation response number, free receiving buffer size, and free receiving buffer size on the other side are associated and stored in the high-reliability communication information 50.

[0052] The communication process ID of the management information of each communication process is, for example, an identifier for identifying the communication process for controlling communication. More specifically, for example, Figure 3 As shown, in the case of TCP / IP, it is the IP address and TCP port number of the communication source and communication destination. The above information can be used to uniquely identify the communication process.

[0053] The sequence number of the management information for each communication flow is, for example, a sequence number indicating data to be transmitted next by the transmission unit 26 of the delivery confirmation, and indicates at which position in the entire transmission data the transmitted data is data. Figure 4 is a diagram showing an example of the format of a transport layer data packet. Figure 4As shown, for example, a sequence number is assigned to the header of a transport layer data packet. In addition, in the case of TCP, the sequence number is added by 1 (+1) for each byte of data each time data is sent, so the size of the sent data is added when data is sent and updated. In addition, the initial value of the sequence number is notified to the communication partner when a TCP connection is established, for example.

[0054] The timeout time of the retransmission timer of the management information of each communication process is, for example, the waiting time after a data packet is sent until the data packet is retransmitted. When the timeout time of the retransmission timer has passed and a timeout occurs, for example, the sending unit 26 of the delivery confirmation sends the data packet again, and cancels the retransmission timing when a confirmation response is received before the timeout. In addition, the sending unit 26 of the delivery confirmation increases the timeout value of the retransmission timer when retransmitting, for example, in the case of TCP. In addition, even if the sending unit 26 of the delivery confirmation repeatedly retransmits a specific number of times, if a confirmation response is not received, the communication is forcibly disconnected.

[0055] The confirmation response number of the management information of each communication flow is, for example, the number of the data that has been received by the receiving unit 27 of the data receiving side. For the confirmation response number, for example, the sequence number of the next transmission data to be received is used to indicate the position of the entire transmission data received. Figure 4 As shown, for example, a sequence number is assigned to the header of the transport layer data packet. For example, when a data packet is received, if the sending sequence number of the receiving header is greater than or equal to the confirmation response number stored in the high-reliability communication information 50, the receiving unit 27 of the delivery confirmation determines that it is new received data, sends a request for sending a confirmation response data packet to the sending unit 26 of the delivery confirmation on the data sending side, and updates the confirmation response number.

[0056] The free receive buffer size of the management information of each communication flow and the free receive buffer size of the other party are, for example, the amount of data that can be sent at once without waiting for an acknowledgment response. In the case of TCP, this is called the window size.

[0057] In addition, if Figure 3 As shown, for example, as the retransmission packet information, information such as the retransmission timer ID and the retransmission packet are associated and stored in the highly reliable communication information 50 .

[0058] The retransmission timer ID of the retransmission packet information is, for example, an identifier for identifying which retransmission packet to retransmit when the retransmission times out.

[0059] The retransmission packet of the retransmission packet information is, for example, taken out by the delivery confirmation transmission unit 26 when the retransmission times out, and is information related to the retransmitted packet, including the storage address of the packet and the packet size.

[0060] Back to Figure 2 As described above, the process-controlled sending unit 30 sends a data packet when there is room in the free receiving buffer of the other party, and waits until there is room when there is no room in the free receiving buffer of the other party. In addition, when sending a data packet, the process-controlled sending unit 30 subtracts the size of the sending data from the size of the free receiving buffer of the other party of the high-reliability communication information 50, and gives the free receiving buffer size of the high-reliability communication information 50 itself to the sending data packet header.

[0061] The error detection transmission unit 32 calculates the result for error detection of the data packet according to an existing algorithm, for example, and adds the result to the header.

[0062] The network layer transmission unit 34 has a role of a network layer in, for example, the OSI reference model.

[0063] The data link layer transmission unit 36 ​​has the function of the data link layer in the OSI reference model, for example. The data link layer transmission unit 36 ​​is divided into the CPU unit 20 and the NIC 40 as, for example, a data link layer transmission unit (1) 38 and a data link layer transmission unit (2) 41, respectively.

[0064] The data link layer transmission unit (1) 38 has, for example, a role of an upper layer, specifically, a role of an LLC (Logical Link Control) sub-layer.

[0065] The data link layer transmission unit (2) 41 has, for example, a function as a lower layer of the data link layer, such as a function as a MAC (Media Access Control) sublayer. The data link layer transmission unit (2) 41 calculates the result for error detection of the data link layer frame according to an existing algorithm, and assigns the result to the FCS area of ​​the data link layer frame. In addition, the data link layer frame is, for example, an Ethernet frame. Figure 5 is a diagram showing an example of the format of a data link layer frame. Figure 5 The FCS area shown is provided with a calculation result for error detection of the data link layer frame. In addition, the data link layer transmission unit (2) 41 transmits the data link layer frame to the information processing device 10 on the data receiving side, that is, the communication node 2, for example.

[0066] Back to Figure 2Next, the information processing device 10 on the data receiving side, that is, each processing unit of the communication node 2, will be described. The order of describing each processing unit corresponds to the flow of data, and is performed from the upper layer when data is sent, and from the lower layer when data is received. The CPU receiving unit 23 has, for example, a high-reliability communication receiving unit 25, a network layer receiving unit 35, and a data link layer receiving unit 37, which receives data sent from the communication node 1 and performs high-reliability communication processing.

[0067] The high-reliability communication receiving unit 25 has a function as an upper layer of the application layer relative to the transport layer in the OSI reference model. The high-reliability communication receiving unit 25 has, for example, a receiving unit 27 for delivery confirmation, a receiving unit 31 for flow control, and a receiving unit 33 for error detection, and functions equivalent to the above functions are installed in the TCP of the transport layer.

[0068] The receiving unit 27 for delivery confirmation, for example, includes a duplication detection unit 29. When receiving data, the receiving unit 27 receives the data after calling the duplication detection unit 29 for processing. The duplication detection unit 29 performs duplication detection, for example, by comparing the sequence number of the packet header with the confirmation response number of the highly reliable communication information 50. When the received packet is data that has not been received, the data is received, and when the received packet is data that has been received, the data is discarded. In addition, when receiving a received packet, for example, the receiving unit 27 for delivery confirmation forwards a request for sending a confirmation response to the received data to the sending unit 26 for delivery confirmation on the data sending side. When receiving a confirmation response from the sending unit 26 for delivery confirmation on the data sending side, for example, the receiving unit 27 for delivery confirmation cancels the retransmission timer and deletes the entry of the object of the retransmission packet of the highly reliable communication information 50.

[0069] The flow-controlled receiving unit 31 updates, for example, the highly reliable communication information 50 used by the flow-controlled sending unit 30. The received data size is subtracted from the free receive buffer size of the highly reliable communication information 50, and the free receive buffer size of the other party of the highly reliable communication information 50 is updated to the value of the free receive buffer size at the head of the received data packet.

[0070] The error detection receiving unit 33 compares the calculation result of the header calculated and given by the error detection sending unit 32 on the data transmission side with the result calculated again by the error detection receiving unit 33. If the results are consistent, it is determined that the data is not damaged, and if they are inconsistent, it is determined that the data is damaged. In addition, for example, in the case of TCP, errors in the packet header are detected using a checksum.

[0071] The network layer receiving unit 35 has the function of the network layer in the OSI reference model, for example. The network layer receiving unit 35 performs error detection of the data message, for example, similarly to the error detection of the error detection receiving unit 33. In addition, for example, in the case of IP, an error in the IP data message header is detected using a checksum.

[0072] The data link layer receiving unit 37 has the function of the data link layer in the OSI reference model, for example. The data link layer receiving unit 37 is divided into the CPU unit 20 and the NIC 40 as, for example, a data link layer receiving unit (1) 39 and a data link layer receiving unit (2) 42, respectively.

[0073] The data link layer receiving unit (1) 39 has, for example, a role of an upper layer, specifically, a role of an LLC (Logical Link Control) sub-layer.

[0074] The data link layer receiving unit (2) 42 has, for example, a function as a lower layer of the data link layer, such as a function as a MAC (Media Access Control) sublayer. The data link layer receiving unit (2) 42 compares, for example, the calculation result of the FCS area of ​​the data link layer frame calculated and assigned by the data link layer sending unit (2) 41 with the result calculated again by the data link layer receiving unit (2) 42. If the results are consistent, it is determined that the data is not damaged, and if they are inconsistent, it is determined that the data is damaged. In addition, for example, when the data link layer frame is an Ethernet frame, the CRC is used to detect errors in the packet header.

[0075] Next, Figure 2 First, the control processing unit 21 transfers a data transmission request to the transmission unit 26 for delivery confirmation, for example, at every fixed cycle.

[0076] Next, upon receiving a transmission request from the control processing unit 21 , the transmission unit 26 for delivery confirmation executes, for example, a delivery confirmation process. Figure 6 : is a flowchart showing the flow of the delivery confirmation processing by the transmission unit 26 based on the delivery confirmation. Figure 6 The delivery confirmation processing shown is explained.

[0077] First, the delivery confirmation sending unit 26 determines, for example, whether there is a termination request (step S101). If there is a termination request (step S101: Yes), the termination Figure 6 Delivery confirmation processing shown.

[0078] On the other hand, when there is no termination request (step S101: No), the delivery confirmation transmission unit 26 waits for a transmission request from, for example, the control processing unit 21 or the delivery confirmation reception unit 27 on the data reception side (step S102).

[0079] When receiving a transmission request, the transmission unit 26 of the delivery confirmation determines whether the transmission request is a request from the control processing unit 21 (step S103). When the transmission request is not a request from the control processing unit 21, that is, a request from the reception unit 27 of the delivery confirmation on the data receiving side (step S103: No), the request is a transmission request for a confirmation response to the received data, and therefore the confirmation response number of the high-reliability communication information 50 is set in the header of the transmission data packet (step S111) and the process proceeds to step S110.

[0080] On the other hand, when the transmission request is a request from the control processing unit 21 (step S103: Yes), the transmission unit 26 of the delivery confirmation stores the transmission data received from the control processing unit 21 in a transmission data packet (step S104).

[0081] Next, the delivery confirmation sending unit 26 calls, for example, the sequence number issuing unit 28, and the sequence number issuing unit 28 adds the sequence number of the highly reliable communication information 50 to the header of the transmission packet (step S105).

[0082] Next, the serial number issuing unit 28 increments the serial number by, for example, the transmission data size and stores the serial number in the highly reliable communication information 50 (step S106 ).

[0083] Next, the delivery confirmation transmitting unit 26 generates, for example, a retransmission timer (step S107 ).

[0084] Next, the delivery confirmation transmission unit 26 stores, for example, the retransmission timer ID and the retransmission data packet in the highly reliable communication information 50 (step S108 ).

[0085] Next, the delivery confirmation transmitting unit 26 starts, for example, a retransmission timer (step S109 ).

[0086] Next, the sending unit 26 of the delivery confirmation, for example, transfers the transmission data packet to the sending unit 30 of the process control (step S110). In addition, when the timeout time of the retransmission timer has passed after the transmission of the transmission data packet and a timeout occurs, the sending unit 26 of the delivery confirmation, for example, retrieves the retransmission data packet associated with the timed-out retransmission timer ID from the high-reliability communication information 50 (step S112). Furthermore, the sending unit 26 of the delivery confirmation, for example, calculates the timeout time of the retransmission timer again and saves it in the high-reliability communication information 50 (step S113), and starts the retransmission timer (step S109).

[0087] Next, if the process-controlled sending unit 30 receives a sending request from the delivery confirmation sending unit 26, it performs process control processing such as confirming the free receiving buffer on the other side and assigning the free receiving buffer size to the sending data packet header, and then transfers the sending data packet to the error detection sending unit 32.

[0088] Next, if the error detection sending unit 32 receives a sending request from the process control sending unit 30, it performs error detection processing such as assigning the above-mentioned calculation result for error detection to the header of the sending data packet, and transfers the sending data packet to the network layer sending unit 34.

[0089] Next, upon receiving a transmission request from the error-detected transmission unit 32 , the network layer transmission unit 34 performs, for example, network layer processing and transfers the transmission data message to the data link layer transmission unit ( 1 ) 38 .

[0090] Next, upon receiving a transmission request from the network layer transmission unit 34 , the data link layer transmission unit ( 1 ) 38 performs data link layer processing in the CPU unit 20 , for example, and transfers the data link layer frame as a transmission frame to the data link layer transmission unit ( 2 ) 41 .

[0091] Next, upon receiving a transmission request from the data link layer transmission unit (1) 38, the data link layer transmission unit (2) 41 performs data link layer processing in the NIC 40, for example, and transmits a transmission frame to the network via the physical layer.

[0092] Next, upon receiving a data reception request from the network via the physical layer, the data link layer receiving unit (2) 42 performs data link layer processing of the NIC 40, for example, and transfers the received data link layer frame to the data link layer receiving unit (1) 39.

[0093] Next, if the data link layer receiving unit (1) 39 receives a receiving request from the data link layer receiving unit (2) 42, it performs data link layer processing in the CPU component 20 and transfers the data part except the header of the data link layer frame to the network layer receiving unit 35.

[0094] Next, if the network layer receiving unit 35 receives a receiving request from the data link layer receiving unit (1) 39, it performs network layer processing such as error detection of the network layer data message, and transfers the data part except the header of the network layer data message to the error detection receiving unit 33.

[0095] Next, if the error detection receiving unit 33 receives a receiving request from the network layer receiving unit 35, it compares the calculation result assigned to the header of the received data packet with the recalculated result as described above to perform error detection processing and transfer the received data packet to the process control receiving unit 31.

[0096] Next, if the process control receiving unit 31 receives a reception request from the error detection receiving unit 33, it performs process control processing such as updating the above-mentioned high-reliability communication information 50, and forwards the received data packet to the delivery confirmation receiving unit 27 when the received data packet contains received data.

[0097] Next, upon receiving a reception request from the reception unit 31 for flow control, the reception unit 27 for delivery confirmation executes, for example, a delivery confirmation process. Figure 7 : is a flowchart showing the flow of the delivery confirmation processing by the receiving unit 27 based on the delivery confirmation. Figure 7 The delivery confirmation processing shown is explained.

[0098] First, the receiving unit 27 of the delivery confirmation determines whether there is a termination request, for example (step S201). If there is a termination request (step S201: Yes), the termination Figure 7 Delivery confirmation processing shown.

[0099] On the other hand, when there is no termination request (step S201 : No), the delivery confirmation receiving unit 27 waits for a reception request from, for example, the flow control receiving unit 31 (step S202 ).

[0100] When receiving the reception request, the delivery confirmation reception unit 27 extracts, for example, a reception data packet (step S203).

[0101] Next, the delivery confirmation receiving unit 27 determines whether the header of the extracted received data packet contains a confirmation response number, for example (step S204). If the confirmation response number is not contained (step S204: No), the process proceeds to step S206.

[0102] On the other hand, if the confirmation response number is included (step S204: Yes), the delivery confirmation receiving unit 27 performs, for example, a confirmation response reception process (step S205). Figure 8 The reception process of the confirmation response will be described in more detail.

[0103] Figure 8 This is a flowchart showing the flow of receiving processing of a confirmation response by the receiving unit 27 of the delivery confirmation. First, the receiving unit 27 of the delivery confirmation takes out, for example, one by one. Figure 3 The data packet information is sent again and the waiting confirmation response data packet information is shown (step S301).

[0104] Next, the delivery confirmation receiving unit 27 determines, for example, whether the confirmation response number in the header of the received data packet is greater than the confirmation response number stored in the highly reliable communication information 50 (step S302). If the confirmation response number in the header is less than or equal to the confirmation response number stored in the highly reliable communication information 50 (step S302: No), the process returns to step S301, and the delivery confirmation receiving unit 27 retrieves, for example, the next waiting confirmation response data packet information.

[0105] On the other hand, when the confirmation response number of the header is greater than the confirmation response number stored in the high-reliability communication information 50 (step S302: Yes), the receiving unit 27 of the delivery confirmation, for example, extracts the resending timer ID corresponding to the waiting confirmation response data packet from the resending data packet information, and deletes the entry of the object of the resending data packet of the resending data packet information (step S303).

[0106] Next, the delivery confirmation receiving unit 27 cancels, for example, the timer of the retrieved retransmission timer ID (step S304).

[0107] Next, the receiving unit 27 for delivery confirmation, for example, determines whether all waiting confirmation response packets of the resent packet information have been checked (step S305). If there is an unchecked waiting confirmation response packet (step S305: No), the process returns to step S301, and the receiving unit 27 for delivery confirmation, for example, takes out the next waiting confirmation response packet information.

[0108] On the other hand, if all waiting confirmation response packets have been checked (step S305: Yes), the process ends. Figure 8 The receiving process shown in Figure 7 Step S206 of the delivery confirmation processing is shown.

[0109] Next, the receiving unit 27 of the delivery confirmation determines, for example, whether the received data packet contains data (step S206). If the received data packet does not contain data (step S206: No), the process returns to step S201, and the receiving unit 27 of the delivery confirmation waits for a reception request from the receiving unit 31 of the process control, for example, until there is an end request.

[0110] On the other hand, when the received data packet contains data (step S206: Yes), the receiving unit 27 of the delivery confirmation calls the duplication detection unit 29, for example, and the duplication detection unit 29 determines whether the sequence number of the header of the received data packet is greater than or equal to the confirmation response number of the high-reliability communication information 50 (step S207).

[0111] When the sequence number of the header is smaller than the confirmation response number of the highly reliable communication information 50 (step S207: No), the target received data is already received data, so the duplication detection unit 29 discards the received data (step S208), and returns to step S201.

[0112] On the other hand, when the sequence number of the header is greater than or equal to the confirmation response number of the highly reliable communication information 50 (step S207: Yes), the receiving unit 27 of the delivery confirmation, for example, determines whether the sequence number of the header of the received data packet is equal to the confirmation response number of the highly reliable communication information 50 (step S209). When the sequence number of the header is not equal to the confirmation response number of the highly reliable communication information 50 (step S209: No), the receiving order of the data is different from the sending order, so the receiving unit 27 of the delivery confirmation, for example, discards the received data (step S210) and returns to step S201.

[0113] On the other hand, when the sequence number of the header is equal to the confirmation response number of the highly reliable communication information 50 (step S209: Yes), the delivery confirmation receiving unit 27 calculates the data size by, for example, subtracting the data offset length (header length) from the data packet size (step S211).

[0114] Next, the delivery confirmation receiving unit 27 updates the confirmation response number of the highly reliable communication information 50 to a value obtained by adding the calculated data size to the sequence number of the header, for example (step S212 ).

[0115] Next, the delivery confirmation receiving unit 27 issues a request for sending a confirmation response to the received data to, for example, the delivery confirmation sending unit 26 on the data transmission side (step S213 ).

[0116] Next, the delivery confirmation receiving unit 27 transfers the data of the received packet to the control processing unit 21 (step S214 ), and returns to step S201 .

[0117] The conventional control system has been described above. However, since the control process of a fixed cycle is required to be continued stably for a long period of time, the control system requires both high-availability communication and high-real-time communication in addition to high-reliability communication.

[0118] Regarding high-availability communication, for example, two physically independent communication paths are prepared in advance, and when a communication abnormality such as a single failure occurs in the current path, the control system itself is required to restore communication using an alternative path.

[0119] In addition, with respect to high real-time communication, for example, it is required that the interruption time of communication from the occurrence of a communication anomaly until the communication is restored is within the control scan cycle (for example, 1 second). Here, the interruption time of communication is, for example, the sum of three processing times: the detection time of the communication anomaly, the switching time of the communication path, and the recovery time of the communication state, but the above time is required to be set to a minimum. The detection time of the communication anomaly is, for example, the time from the occurrence of the communication anomaly until the communication anomaly is detected by the communication diagnosis performed in a constant cycle. In addition, the switching time of the communication path is, for example, the time to stop using the path that caused the anomaly and change to using an alternative path. In addition, the recovery time of the communication state is, for example, the time involved in recovering to the communication state immediately before the anomaly occurred and used for the continuation of the communication.

[0120] Therefore, in this embodiment, one of the purposes is to ensure high reliability and high availability of communication for process control communication, and to perform high real-time communication. In addition, the present embodiment is divided into a basic invention and an applied invention for explanation below. The basic invention solves the problems of the prior art, and the applied invention further solves the problems of the basic invention on the basis of the prior art.

[0121] (Structure of the control system based on the present invention)

[0122] Fig. 9 1 is a diagram showing a configuration example of a control system according to the present invention. Fig. 9 As shown, the control system of the basic invention is relative to Figure 1 The communication path of the control system of the prior art shown in FIG. 1 also has physically independent communication paths shown by thick boxes. In order to achieve high-availability communication, the control system of the present invention replicates the transmission data as the communication node 1 of the transmission node, and transmits each data separately via Fig. 9The data is sent to the communication node 2 as the receiving node through two physically independent communication paths (hereinafter sometimes collectively referred to as "dual paths") shown in FIG. 1 . Thus, compared with the control system of the prior art that only sends data to a single communication path, there is no need for constant cycle diagnosis of the path, detection of communication anomalies, switching of the path, and recovery processing of the communication state, so the switching time of the communication path is substantially zero, and the interruption time of the communication can be suppressed to a minimum. That is, it is possible to ensure highly reliable and highly available communication for process control communication, and perform high real-time communication.

[0123] (Functional Structure of Information Processing Device 10 Based on the Present Invention)

[0124] Next, the functional structure of the information processing device 10 that is the execution subject of the basic present invention will be described. Fig.10 1 is a diagram showing a configuration example of an information processing device 10 according to the present invention. The information processing device 10 according to the present invention, for example, duplicates a data link layer frame and transmits it to a dual path. Figure 2 The information processing device 10 of the prior art shown in the figure has physically independent communication paths, and therefore has a plurality of NICs 40-1 and 40-2, a plurality of data link layer transmission units (2) 41-1 and 41-2, and a plurality of data link layer reception units (2) 42-1 and 42-2 for each communication path. In addition, in order to transmit the same data link layer frame from two paths, as in the information processing device 10 of the basic invention, Fig.10 As shown, between the data link layer transmission unit (1) 38 and the data link layer transmission units (2) 41-1 and 41-2, there is a dual-path dual-output unit 45 indicated by a bold frame.

[0125] Next, the processing units of the information processing device 10 according to the present invention are described with reference to the parts that are different from the information processing device 10 of the prior art. The different parts are mainly the processing of the processing units of the serial number issuing unit 28, the dual-path dual-output unit 45, and the duplication detection unit 29, and the information stored in the high-reliability communication information 50. Fig.10 The serial number issuing unit 28, the duplication detecting unit 29 and the high reliability information 50 shown in the double frame can use the conventional information processing device 10 as it is, so there is no need to add or change them.

[0126] The sequence number issuing unit 28 of the basic invention assigns the transmission sequence number managed and stored in the high-reliability communication information 50 to the header of the data packet, for example, in order to uniquely identify the transmitted data, and updates the transmission sequence number stored in the high-reliability communication information 50 for the next data transmission. In the basic invention, the same data packet is transmitted to the dual paths, so the information processing device 10 on the data receiving side, i.e., the communication node 2, discards the duplicate data packets using the sequence number assigned to the header of the data packet. The processing based on the sequence number issuing unit 28 of the basic invention is similar to Figure 6 Steps S105 and S106 of the delivery confirmation processing shown are the same.

[0127] The dual-path dual-output unit 45 performs an action, for example, when receiving a transmission request for a transmission frame from the data link layer transmission unit (1) 38. In addition, the dual-path dual-output unit 45 uses a binding function in Linux (registered trademark) and a load balancing (teaming) function in Windows (registered trademark) to transmit the transmission frame via dual paths.

[0128] The duplication detection unit 29 of the basic invention performs duplication detection based on, for example, a comparison between the sequence number of the packet header and the confirmation response number of the highly reliable communication information 50, and receives the data if the received packet is data that has not been received, and discards it if it is data that has been received. In the basic invention, the same data packet is sent to both paths, so the duplication detection unit 29 of the information processing device 10 on the data receiving side, that is, the communication node 2, discards the duplicate data packet. The processing of the duplication detection unit 29 based on the basic invention is similar to Figure 7 Steps S207 and S208 of the delivery confirmation processing shown are the same.

[0129] Next, about Fig.10 The interaction between the various processing units shown is very important for Figure 2 The following describes the different parts of the interaction between the processing units of the information processing device 10 of the prior art shown in the figure. In the basic invention, unlike the prior art, the data link layer frame is copied in the dual path dual output unit 45 and the frame is sent to the dual path. In addition, the duplicate detection unit 29 on the data receiving side detects the duplicate frame received later and discards it.

[0130] The processing of the information processing device 10 on the data transmission side, that is, the network layer transmission unit 34 of the communication node 1 and Figure 2 The prior art shown is the same.

[0131] Next, upon receiving a transmission request from the network layer transmission unit 34 , the data link layer transmission unit ( 1 ) 38 performs data link layer processing of the CPU unit 20 , for example, and transfers the data link layer frame as a transmission frame to the dual path dual output unit 45 .

[0132] Next, upon receiving a transmission request from the data link layer transmission unit (1) 38, the dual-path dual-output unit 45 executes, for example, a dual-path dual-output process. Fig.11 4 is a flowchart showing the process of dual-path dual-output processing by the dual-path dual-output unit 45. Fig.11 The dual-path dual-output processing shown is explained.

[0133] First, the dual-path dual-output unit 45 determines whether there is a termination request (step S401). If there is a termination request (step S401: Yes), the termination Fig.11 Dual path dual output processing shown.

[0134] On the other hand, when there is no end request (step S401: No), the dual-path dual-output unit 45 waits for a transmission request from, for example, the data link layer transmission unit (1) 38 (step S402).

[0135] When receiving the transmission request, the dual-path dual-output unit 45 receives a data link layer frame as a transmission frame from, for example, the data link layer transmission unit (1) 38 (step S403).

[0136] Next, the dual-path dual-output unit 45 duplicates the received transmission frame, for example (step S404 ).

[0137] Next, the dual-path dual-output unit 45, for example, forwards each transmission frame to the data link layer transmission unit (2) 41-1 of the NIC (1) 40-1 and the data link layer transmission unit (2) 41-2 of the NIC (2) 40-2 (step S405). That is, the information processing device 10 on the data transmission side, for example, in response to receiving a transmission request for data for process control, copies the transmission frame of the data link layer and generates a first transmission frame and a second transmission frame, and transmits the first transmission frame to the first NIC and the second transmission frame to the second NIC. In addition, after executing step S405, the process returns to step S401, and the dual-path dual-output unit 45 waits for a transmission request from the data link layer transmission unit (1) 38, for example, until there is an end request.

[0138] Next, if a transmission request is received from the dual-path dual-output unit 45, the data link layer transmission units (2) 41-1 and 41-2 respectively calculate the results for error detection of the data link layer frame according to existing algorithms, and assign the results to the FCS area of ​​the data link layer frame.

[0139] Furthermore, the data link layer transmission units (2) 41-1 and 41-2 transmit data link layer frames via the respective communication paths, for example, to the information processing device 10 on the data receiving side, i.e., the communication node 2. That is, the information processing device 10 on the data transmitting side transmits, for example, the first transmission frame of the first NIC to the network, and transmits the second transmission frame of the second NIC to the network.

[0140] In addition, the duplication detection unit 29 on the data receiving side performs duplication detection based on, for example, the comparison between the sequence number of the data packet header and the confirmation response number of the highly reliable communication information 50, receives the data when the received data packet is data that has not been received, and discards it when it is data that has been received. That is, the information processing device 10 on the data receiving side performs duplication detection of the first transmission frame and the second transmission frame based on the sequence number of the data packet header in response to receiving the first transmission frame or the second transmission frame, and discards the first transmission frame or the second transmission frame received later when duplication of the first transmission frame and the second transmission frame is detected.

[0141] In this way, the information processing device 10 according to the present invention sends frames to physically independent dual paths, thereby ensuring highly reliable and highly available communication for process control communication, and performing high real-time communication. More specifically, for example, as in the prior art, in order to switch from the current path to the alternative path, there is no need to detect communication anomalies, so the detection time of communication anomalies is zero. In addition, in order to switch from the current path to the alternative path, there is no need to switch the communication path, so the switching time of the communication path is also zero. In addition, in order to switch from the current path to the alternative path, there is no need to restore the communication state, so the recovery time of the communication state is also zero. In addition, the processing units that send frames to physically independent dual paths are sometimes collectively referred to as dual output units.

[0142] The control system of the basic invention has been described above. However, in the control system of the basic invention, the same data packet is sent to physically independent dual paths, and the duplicate data packet is detected and discarded in the duplicate detection unit 29 of the receiving unit 27 for delivery confirmation. However, the control system of the basic invention has the problem of increased CPU load of the sending and receiving nodes and inability to cope with the transport layer communication protocol without a duplicate detection function.

[0143] Regarding the problem of increased CPU load of the transceiver node, for example, when sending data, the data link layer protocol duplicates the frame and sends the doubled transmission data. On the other hand, when receiving data, for the doubled reception data, until the transport layer protocol discards the duplicate data packet, reception processing including the data link layer and the network layer is performed. As a result, at the receiving node, the reception processing amount up to the transport layer is doubled, so the CPU load based on the reception processing is roughly twice that of the control system of the prior art. In particular, when the control system of the basic invention is applied to an embedded instrument such as a controller of a control system, the CPU performance is nearly two orders of magnitude lower than that of a PC, so the adverse effect caused by the increase in the CPU load of the reception processing is greater. Regarding this adverse effect, for example, the maximum reception frequency band that the controller of the control system can receive decreases inversely proportional to the increase in the reception processing amount when the CPU load reaches the upper limit. In addition, the control processing time for the control scan cycle requires that the processing be completed within the cycle, so if the communication processing time increases, it must be reduced accordingly to the increase. Therefore, when the control system according to the basic invention is applied to a controller or the like, it is required to minimize the increase in the reception processing amount caused by sending the same data packet to two paths and to set the reception processing amount to the same level as that of the control system in the prior art.

[0144] In addition, regarding the problem that the transport layer communication protocol without a duplicate detection function cannot be handled, for example, in the control system of the basic invention, it is a premise to communicate using a communication protocol with a duplicate detection function for the same data packet. Therefore, in the case where the communication protocol does not have a duplicate detection function, an additional function is required. In addition, in the case where the transport layer protocol does not have a duplicate detection function, such as the publish / subscribe communication expected in the subsequent control communication, an additional function for the communication protocol is also required.

[0145] Therefore, in the applied invention, one of its purposes is to solve the above-mentioned problems of the basic invention on the basis of the problems of the prior art, to ensure high reliability and high availability communication for process control communication, and to perform high real-time communication.

[0146] (Structure of control system to which the invention is applied)

[0147] The structure and application of the control system of the invention Fig. 9 The structure of the control system of the basic invention shown is the same.

[0148] (Functional Structure of Information Processing Device 10 to Which the Invention is Applied)

[0149] Next, the functional structure of the information processing device 10 that is the execution subject of the applied invention will be described. Fig.121 is a diagram showing a configuration example of an information processing device 10 to which the present invention is applied. The information processing device 10 to which the present invention is applied performs, for example, at the data link layer the duplication detection of received data packets which is performed at the layer above the transport layer in the information processing device 10 of the basic invention. Fig.10 The information processing device 10 according to the present invention is shown as follows: Fig.12 As shown in FIG. 1 , the information processing device 10 to which the present invention is applied has a simplified serial number issuing unit 46 shown in a bold frame between the data link layer transmitting unit (1) 38 and the dual-path dual-output unit 45. Fig.12 As shown in FIG. 1 , the information processing device 10 to which the present invention is applied has a simplified duplication detection unit 47 indicated by a bold frame between the data link layer receiving unit (1) 39 and the data link layer receiving units (2) 42-1 and 42-2. Fig.12 As shown, the information processing device 10 to which the present invention is applied stores the path redundancy information 51 shown in the bold frame in the storage unit. Fig.12 For convenience, omitted Fig.10 The details of the highly reliable communication transmission unit 24 and the highly reliable communication reception unit 25 , and the data link layer transmission unit 36 ​​and the data link layer reception unit 37 are shown.

[0150] Next, the processing units of the information processing device 10 to which the present invention is applied are described, with reference to the parts that are different from the information processing device 10 of the basic present invention. The parts that are different mainly include the simple serial number issuing unit 46, the simple duplication detecting unit 47, and the path redundancy information 51.

[0151] The simple sequence number issuing unit 46 is added, for example, between the data link layer transmitting unit (1) 38 of the data link layer transmitting unit 36 ​​and the dual path dual output unit 45. The simple sequence number issuing unit 46 issues and assigns a sequence number for uniquely identifying the data link layer frame to the header. In addition, the place where the sequence number is assigned is, for example, the option area of ​​the header of the data link layer frame. That is, the information processing device 10 on the data transmitting side assigns an identifier for uniquely identifying the transmission frame to the option area of ​​the header of the transmission frame, for example.

[0152] In addition, according to the data link layer, there are also protocols without option areas, so in this case, for example, an option area is assigned to the data message header of the network layer. That is, the information processing device 10 on the data sending side, for example, assigns an identifier for uniquely identifying the transmission frame to the option area of ​​the data message header of the network layer. In the case of TCP / IP, there is an option area of ​​variable length in the IP header, so it can be easily appended. In addition, the sequence number of the basic invention is increased by 1 (+1) every time 1 byte of data is sent in each communication process, while the sequence number of the simple sequence number issuing unit 46 is increased by 1 every time 1 frame is sent for each transmission target, so it is easy to manage the sequence number. That is, the information processing device 10 on the data sending side, for example, issues an identifier for uniquely identifying the transmission frame to the transmission target of the transmission frame and each transmission frame.

[0153] In addition, the sequence number issued by the simple sequence number issuing unit 46 is distinguished from the sequence number issued by the sequence number issuing unit 28, and therefore, it is sometimes referred to as a "simple sequence number" below. In addition, in order to add a simple sequence number to the data link layer frame, for example, the stream function of Unix (registered trademark) System V, the filter function of BSD Unix, the driver hierarchical function of Windows, etc. can be used. If the above functions are used, it is possible to easily add processing without adversely affecting the existing protocol processing.

[0154] The simple duplication detection unit 47 is added, for example, between the data link layer receiving unit (1) 39 and the data link layer receiving units (2) 42-1 and 42-2 of the data link layer receiving unit 37. The simple duplication detection unit 47 stores the simple sequence number of the frame first received for each data transmission source, for example, in order to determine whether the received frame is the first received frame or the second received frame. When a frame having the same simple sequence number as the stored one is received, the simple duplication detection unit 47 detects and discards the duplicated received frame, for example. That is, for example, duplication detection of the first transmission frame and the second transmission frame is performed at the data link layer, and the first transmission frame or the second transmission frame is discarded. The duplication detection of the basic invention is performed at the transport layer, whereas the duplication detection is performed at the data link layer in the applied invention, so it is not necessary to process duplicate frames in the reception process of the network layer and the transport layer. In addition, the duplication detection of the basic invention is performed for each communication process and discarded, whereas the duplication detection is performed for each frame and discarded in the applied invention, so the processing becomes easier than that of the basic invention.

[0155] The path redundancy information 51 stores information for detecting frame duplication at the data link layer, for example. Fig.13 FIG. 5 is a diagram showing an example of the path redundancy information 51. Fig.13As shown, the sequence number of the next frame is stored as the sequence number management information in the path redundancy information 51. The sequence number of the next frame is, for example, the simple sequence number assigned to the next transmission frame by the simple sequence number issuing unit 46. In addition, the sequence number of the next frame is increased by 1 (+1) each time a frame is transmitted, and is restored to the initial value (for example, 1) when it reaches the maximum sequence number.

[0156] In addition, if Fig.13 As shown, in the path redundancy information 51, information such as the source MAC address, the simple sequence number, and the timestamp are stored in association as the record information of the ring buffer. Here, the ring buffer refers to a logical ring buffer in which the end and the beginning of the buffer are connected, and data is stored in sequence from the beginning. If the data is stored to the end, it is returned to the beginning for storage.

[0157] The record information of the circular buffer stores, for example, information for uniquely identifying each received frame in order, and the frame can be uniquely identified using the source MAC address, simple serial number, and timestamp. In addition, the size of the record that can be stored in the record information of the circular buffer is, for example, the frame lifetime TTL (Time To Live) of the sent frame. The effective period of the frame after it is sent to the network until it is received. It is set to be greater than or equal to 10 times the maximum communication delay. For example, 10 seconds) is the size that all frames sent during the period can be stored in the circular buffer. Thereby, it is guaranteed that the reception records of all valid sent frames can be stored. The size of the record is equal to the maximum sequence number, for example, when the sequence number starts from 1 and increases by +1 for each frame.

[0158] The source MAC address of the recorded information of the ring buffer is, for example, an address for uniquely identifying the source of the received frame. The source MAC address is, for example, used to identify the source without referring to the transport layer header. In addition, the source MAC address stores, for example, the source MAC address of the frame header when receiving the received frame.

[0159] The simple sequence number of the ring buffer recording information is, for example, a number for uniquely identifying a received frame. The simple sequence number is, for example, used to identify data without referring to the transport layer header. In addition, the simple sequence number is, for example, stored in the frame header when receiving a frame.

[0160] The timestamp of the record information of the ring buffer is, for example, the time when the simple sequence number is stored, which is roughly equivalent to the time when the frame is received. When the storage time of the record calculated based on the timestamp is shorter than the frame life time, that is, the effective storage period, the record is set to be valid. When the storage time of the record calculated based on the timestamp is longer than the frame life time, that is, the effective storage period, the record is determined to be invalid. In this way, useless detection of frames can be eliminated.

[0161] In addition, if Fig.13 As shown, the path redundancy information 51 stores information such as a read pointer and a write pointer in association as management information of the ring buffer. The management information of the ring buffer stores information indicating the ring buffer itself and information for updating the recorded information of the ring buffer.

[0162] The read pointer of the ring buffer management information is, for example, a pointer to a record used for the next duplicate detection in the record storing the information of the received frame, and is used to determine which record row to read from. For example, when compared with the simple sequence number assigned to the received frame, the simple sequence number of the record row pointed by the read pointer is taken out and duplicate detection is performed.

[0163] The write pointer of the management information of the ring buffer is, for example, a pointer to a record in which the information of the newly received frame is stored next. For example, when a frame to which a simple sequence number not stored in the path redundancy information 51 is assigned is received, the source MAC address, the simple sequence number, and the timestamp are stored in the record row pointed to by the write pointer.

[0164] Next, about Fig.12 The interaction between the various processing units shown is very important for Fig.10 The different parts of the interaction of the processing units of the information processing device 10 of the basic invention shown in the figure are explained. In the applied invention, unlike the basic invention, by making the data link layer have a duplicate detection function, it is not necessary to process the data link layer receiving unit (1) 39 such as the error detection receiving unit 33 to the high-reliability communication receiving unit 25 for the duplicated received data link layer frame.

[0165] The processing of the data link layer transmission unit (1) 38 of the information processing device 10 on the data transmission side, that is, the communication node 1 Fig.10 The basic invention shown is the same.

[0166] Next, upon receiving a transmission request from the data link layer transmission unit (1) 38, the simple serial number issuing unit 46 executes, for example, a simple serial number issuing process. Fig.144 is a flowchart showing the flow of the simple serial number issuance process by the simple serial number issuing unit 46. Fig.14 The simplified serial number issuance process shown is explained.

[0167] First, the simple serial number issuing unit 46 determines whether there is a termination request (step S501). If there is a termination request (step S501: Yes), the termination Fig.14 Simple serial number issuance process shown.

[0168] On the other hand, when there is no end request (step S501: No), the simple sequence number issuing unit 46 waits for a transmission frame from, for example, the data link layer transmission unit (1) 38 (step S502).

[0169] When receiving a transmission frame, the simple sequence number issuing unit 46 receives the data link layer frame as the transmission frame from, for example, the data link layer transmitting unit (1) 38 (step S503).

[0170] Next, the simple sequence number issuing unit 46 gives the sequence number of the next frame stored in the path redundancy information 51 to the header (step S504). That is, the information processing device 10 on the data transmission side issues an identifier for uniquely identifying a transmission frame, and gives the identifier to the transmission frame.

[0171] Next, the simple sequence number issuing unit 46 updates the sequence number of the next frame of the path redundancy information 51 by adding 1 (+1), for example (step S505). When the sequence number reaches the maximum sequence number, it is updated to an initial value (for example, 1).

[0172] Next, the simple sequence number issuing unit 46 transfers the transmission frame to the dual-path dual-output unit 45 (step S506). After executing step S506, the process returns to step S501, and the simple sequence number issuing unit 46 waits for a transmission frame from the data link layer transmitting unit (1) 38, for example, until there is an end request.

[0173] Next, when receiving a transmission request from the simple sequence number issuing unit 46, the dual-path dual-output unit 45 copies the received transmission frame, for example, and transfers each transmission frame to the data link layer transmission unit (2) 41-1 of the NIC (1) 40-1 and the data link layer transmission unit (2) 41-2 of the NIC (2) 40-2, for example.

[0174] Next, the interaction between the processing units of the information processing device 10 on the data receiving side, that is, the communication node 2 will be described. Upon receiving a reception request from the data link layer reception units (2) 42-1 and 42-2, the simple duplicate detection unit 47 executes, for example, a simple duplicate detection process. Fig.15 4 is a flowchart showing the flow of the simple duplication detection process by the simple duplication detection unit 47. Fig.15 The simplified duplicate detection process shown is described below.

[0175] First, the simple duplication detection unit 47 determines, for example, whether there is a termination request (step S601). If there is a termination request (step S601: Yes), the termination Fig.15 The simplified duplicate detection process shown.

[0176] On the other hand, when there is no end request (step S601: No), the simple duplication detection unit 47 waits for a reception frame from, for example, the data link layer reception unit (2) 42-1 or 42-2 (step S602).

[0177] When receiving a reception frame, the simple duplication detection unit 47 receives a data link layer frame as a reception frame from, for example, the data link layer reception unit (2) 42-1 or 42-2 (step S603).

[0178] Next, the simple duplication detection unit 47 extracts the simple sequence number and the time stamp stored in the record row pointed to by the read pointer of the path redundancy information 51 (step S604 ), for example.

[0179] Next, the simple duplication detection unit 47 determines, for example, whether the extracted simple serial number is available (step S605). If the simple serial number is available (step S605: Yes), the process proceeds to step S613.

[0180] On the other hand, when there is no remaining simple sequence number (step S605 : No), the simple duplication detection unit 47 calculates the storage elapsed time of the simple sequence number based on the extracted time stamp, for example (step S606 ).

[0181] Next, the simple duplication detection unit 47 determines, for example, whether the calculated storage elapsed time is earlier than the storage effective period of the path redundant information 51 (step S607). If the storage elapsed time is earlier than the storage effective period (step S607: Yes), the time stamp and the simple sequence number of the path redundant information 51 are all cleared (step S608).

[0182] Next, the simple duplication detection unit 47 adds 1 (+1) to the read pointer of the path redundancy information 51 to update the pointer (step S609 ), and returns to step S604 .

[0183] On the other hand, when the storage elapsed time is not earlier than the storage effective period (step S607: No), the simple duplication detection unit 47 determines, for example, whether the simple sequence number in the header is consistent with the extracted simple sequence number (step S610). When the simple sequence number in the header is inconsistent with the extracted simple sequence number (step S610: No), the process proceeds to step S613.

[0184] On the other hand, when the simple sequence number in the header matches the extracted simple sequence number (step S610: Yes), the simple duplication detection unit 47, for example, discards the received frame (step S611). That is, the information processing device 10 on the data receiving side, for example, in response to receiving the first transmission frame or the second transmission frame, performs duplication detection of the first transmission frame and the second transmission frame based on the identifier assigned to the transmission frame by the information processing device 10 on the data transmitting side, and when duplication of the first transmission frame and the second transmission frame is detected, the first transmission frame or the second transmission frame received later is discarded.

[0185] Next, the simple duplication detection unit 47 adds 1 (+1) to the read pointer of the path redundancy information 51 to update the pointer (step S612), and returns to step S601.

[0186] Furthermore, when the process proceeds to step S613 , the simple duplication detection unit 47 stores, for example, the simple sequence number of the received frame and the current time (time stamp) in the record row pointed to by the write pointer of the path redundancy information 51 (step S613 ).

[0187] Next, the simple duplication detection unit 47 adds 1 (+1) to the write pointer of the path redundancy information 51 to update the pointer (step S614).

[0188] Next, the simple duplication detection unit 47 transfers the received frame to the data link layer reception unit (1) 39 (step S615), and returns to step S601.

[0189] In addition, Fig.15 In the simplified duplication detection process shown, processing when frames are received in an order different from the order in which the frames were transmitted and processing of returning to the beginning when the read pointer and the write pointer reach the end of the ring buffer are omitted.

[0190] In this way, the information processing device 10 of the application invention assigns a simple sequence number to the header option area of ​​the data link layer frame in order to be applied to control communication requesting real-time communication, and uses the receiving unit to record the simple sequence number to detect duplication, thereby being able to forward to the receiving unit of the upper layer without waiting for the first received frame. In addition, in the frame duplication detection function, in order to reliably discard the duplicate frame without expanding the frame, wait until two duplicate frames are received, and on the basis of confirming that the frames are the same, forward one frame to the receiving unit of the upper layer and discard the other frame. In the application invention, the data link layer receiving unit 37 discards the duplicate frame, so the receiving unit of the network layer and the transport layer can not perform error detection processing on the duplicate frame. In addition, the error detection processing of the data link layer receiving unit 37 is before the discarding of the frame, so error detection is also performed on the duplicate frame, but the NIC auxiliary processor performs the error detection processing, so it does not affect the CPU load of the CPU component 20.

[0191] In addition, as an application of the invention (2), if the information processing device 10 first performs the same function as the duplicate detection function of the upper layer such as the transport layer at the data link layer based on the sequence number of the packet header such as TCP, it is possible to detect duplicate frames without performing useless protocol processing for discarded packets at the network layer and the transport layer.

[0192] In the application invention (2), the functional structure of the information processing device 10 on the data transmission side is, for example, the same as Fig.10 The basic invention shown is the same as that described above, and the sequence number issuing unit 28 of the transmission confirmation sending unit 26 prepared in the transport layer such as TCP is used. In addition, a dual-path dual-output unit 45 is prepared separately.

[0193] In the application invention (2), the functional structure of the information processing device 10 on the data receiving side is not as described above. Fig.12 Instead of adding a new duplication detection function based on the simplified duplication detection unit 47 as in the application invention shown in the figure, the existing duplication detection unit of the transmission layer is used. Fig.12 The application invention shown in the figure similarly calls the duplication detection unit of TCP or the like from the data link layer. In addition, for example, when the duplication detection unit is called, the header information of the transport layer such as TCP or the like is requested to be transferred. In addition, for example, the header of the transport layer extracts the data part of the Ethernet frame, matches it with the IP data message, extracts the data part, and matches it with the data packet of TCP or the like, and requests to extract the header.

[0194] Therefore, in the applied invention (2), the network layer and data link layer protocol processing is not performed on the repeated frames, so the CPU load is reduced compared with the basic invention. Fig.12Compared with the application invention shown, it can be implemented by simply calling the existing duplication detection unit of TCP or the like from the data link layer, so the simple sequence number issuing unit 46 and the simple duplication detection unit 47 are unnecessary.

[0195] (Other embodiments)

[0196] In addition, in the application invention, duplicate detection of received data packets is performed at the data link layer. For example, a duplicate detection function can be added between the physical layer and the data link layer and the duplicate detection function can be executed. The duplicate detection function can be added on the NIC of the communication node, for example. That is, for example, duplicate detection of the first transmission frame and the second transmission frame is performed between the physical layer and the data link layer, and the first transmission frame or the second transmission frame is discarded. Therefore, the auxiliary processor on the NIC processes the duplicate detection function and discards the duplicate frame, so the load of the CPU component 20 is the same as that of the prior art.

[0197] In addition, regarding the duplicate detection of the received data packet, a duplicate detection function can be added between the data link layer and the network layer to perform the duplicate detection function. Thus, other empty cores are used on the CPU card of the transceiver node for processing. Therefore, the auxiliary processor on the NIC processes the duplicate detection function and discards the duplicate frames, so the CPU load of the CPU component 20 is the same as that of the prior art. That is, for example, duplicate detection of the first transmission frame and the second transmission frame, and discarding of the first transmission frame or the second transmission frame are performed between the data link layer and the network layer.

[0198] (Effect)

[0199] As described above, the information processing device 10 on the data sending side responds to accepting a request to send data for process control, copies the send frame of the data link layer to generate a first send frame and a second send frame, sends the first send frame to the first NIC, sends the second send frame to the second NIC, sends the first send frame of the first NIC to the network, and sends the second send frame of the second NIC to the network.

[0200] As a result, compared with the control system of the prior art that sends data only on a single communication path, the information processing device 10 does not require constant periodic diagnosis of the path, detection of communication anomalies, switching of the path, and recovery processing of the communication status. Therefore, the switching time of the communication path is approximately zero, and the communication interruption time can be suppressed to a minimum. Highly reliable and highly available communication can be ensured for process control communication, and high real-time communication can be performed.

[0201] In addition, the information processing device 10 on the data receiving side performs duplication detection of the first transmission frame and the second transmission frame based on the sequence number of the data packet header in response to receiving the first transmission frame or the second transmission frame, and when duplication of the first transmission frame and the second transmission frame is detected, the later received first transmission frame or the second transmission frame is discarded.

[0202] As a result, the information processing device 10 can use the detection and discarding processing of duplicate data packets in the related art for detecting and discarding frames transmitted in the dual paths.

[0203] In addition, the information processing device 10 on the data sending side issues an identifier for uniquely identifying a transmission frame, and assigns the identifier to the transmission frame. The information processing device 10 on the data receiving side responds to receiving a first transmission frame or a second transmission frame, and performs duplication detection of the first transmission frame and the second transmission frame based on the identifier. When duplication of the first transmission frame and the second transmission frame is detected, the later received first transmission frame or the second transmission frame is discarded.

[0204] As a result, the information processing device 10 detects and discards each frame, for example, and thus can easily handle the case where detection and discarding are performed in each communication flow, and can also cope with transport layer communication protocols without a duplicate detection function.

[0205] The process of issuing an identifier for uniquely identifying a transmission frame, which is executed by the information processing device 10 on the data transmission side, includes a process of issuing an identifier for the transmission destination of the transmission frame and for each transmission frame.

[0206] As a result, the information processing device 10 increases the sequence number by 1 every time it transmits one frame for each destination, so it is easy to manage the sequence number.

[0207] The process of assigning an identifier to a transmission frame, which is executed by the information processing device 10 on the data transmission side, includes a process of assigning an identifier to an option area in the header of the transmission frame.

[0208] As a result, information processing device 10 can ensure highly reliable and highly available communication and perform highly real-time communication without adding a new data area to assign an identifier to a transmission frame.

[0209] The process of assigning an identifier to a transmission frame, which is executed by the information processing device 10 on the data transmission side, includes the process of assigning an identifier to the option area of ​​the data message header of the network layer.

[0210] As a result, information processing device 10 can ensure highly reliable and highly available communication and perform highly real-time communication without adding a new data area to assign an identifier to a transmission frame.

[0211] The duplication detection and discarding of the first transmission frame or the second transmission frame performed by the information processing device 10 on the data receiving side are executed by the data link layer receiving unit (1) 39 mounted on the CPU unit 20.

[0212] As a result, the information processing device 10 does not need to process duplicate frames in the reception processing of the network layer and the transport layer, and can reduce the processing load.

[0213] In addition, the duplication detection and the discarding of the first transmission frame or the second transmission frame performed by the information processing device 10 on the data receiving side are performed between the physical layer and the data link layer.

[0214] As a result, in the information processing device 10, the auxiliary processor on the NIC processes the duplicate detection function and discards the duplicate frames, so that the load on the CPU component is not increased, and high-reliability and high-availability communication can be ensured, and high-real-time communication can be performed.

[0215] In addition, the duplication detection and the discarding of the first transmission frame or the second transmission frame performed by the information processing device 10 on the data receiving side are performed between the data link layer and the network layer.

[0216] As a result, the information processing device 10 does not need to process duplicate frames in the reception processing of the network layer and the transport layer, and can reduce the processing load.

[0217] (Other embodiments)

[0218] Although the embodiment of the present invention has been described above, the present invention can be implemented in various different forms other than the above-described embodiment.

[0219] (system)

[0220] The processing flow, control flow, specific names, and information including various data and parameters in the above description and the accompanying drawings can be changed arbitrarily except for special records.

[0221] In addition, the components of each device shown in the figure are functional concepts and do not need to be physically configured as shown in the figure. That is, the specific method of distributing and integrating each device is not limited to the diagram. That is, it can be functionally or physically configured in arbitrary units to distribute / integrate all or part of it according to various loads, usage conditions, etc.

[0222] Furthermore, all or any part of each processing function executed in each device may be realized by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or may be realized as hardware based on wired logic.

[0223] (hardware)

[0224] Next, the hardware configuration of the information processing device 10 serving as the communication node 1 or the communication node 2 will be described. Fig.16 1 is a diagram showing an example of the hardware configuration of the information processing device 10 according to the present embodiment. Fig.16 As shown, the information processing device 10 includes a communication terminal 10a, a nonvolatile memory 10b, a RAM (Random-Access Memory) 10c, and a processor 10d. Fig.16 The various parts shown are connected to each other by a bus or the like.

[0225] The communication terminal 10a is an Ethernet port or the like, and communicates with other information processing devices. The nonvolatile memory 10b is a flash memory or the like, and is used for Fig.10 , Fig.12 Each processing unit shown stores a program and data for executing each function.

[0226] The processor 10d is a CPU, an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), etc. In addition, the processor 10d can be implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array). In addition, the processor 10d reads data related to the nonvolatile memory 10b, etc. Fig.10 , Fig.12 The same processing program is developed in RAM 10c so that the execution Fig.10 , Fig.12 For example, the thread executes the same function as each processing unit of the information processing device 10. Specifically, the processor 10d reads the data having the same function as the data from the nonvolatile memory 10b. Fig.10 , Fig.12 The processor 10d executes a thread that performs the same functions as the functions of the processing units shown in FIG. Fig.10 , Fig.12 The processing of each processing unit shown is the same processing.

[0227] In this way, the information processing device 10 performs actions as an information processing device that performs various processing methods by reading and executing the program. In addition, the program can be configured via a network such as the Internet. In addition, the program can be recorded on a computer-readable storage medium such as a hard disk, a floppy disk (FD), a CD-ROM, an MO (Magneto-Optical disk), a DVD (Digital Versatile Disc), etc. Moreover, the program can be executed by reading it from a computer-readable storage medium by the information processing device 10, etc.

Claims

1. A computer-readable recording medium having an information processing program recorded thereon, wherein: The information processing program causes the information processing device to execute the following processing: In response to receiving a transmission request for process control data, a transmission frame of the data link layer is copied to generate a first transmission frame and a second transmission frame, The first transmission frame is sent to a first NIC, where the NIC is a network interface card. sending the second transmit frame to the second NIC, sending the first transmit frame in the first NIC to a network, The second transmit frame in the second NIC is transmitted to the network.

2. The computer-readable recording medium according to claim 1, wherein: The second information processing device executes the following processing: In response to receiving the first transmission frame or the second transmission frame, performing duplication detection of the first transmission frame and the second transmission frame based on a sequence number of a data packet header, When duplication of the first transmission frame and the second transmission frame is detected, the first transmission frame or the second transmission frame received later is discarded.

3. The computer-readable recording medium according to claim 1, wherein: causing the information processing device to execute: issuing an identifier for uniquely identifying the transmission frame, and assigning the identifier to the transmission frame, The second information processing device executes the following processing: In response to receiving the first transmission frame or the second transmission frame, performing duplication detection of the first transmission frame and the second transmission frame based on the identifier, When duplication of the first transmission frame and the second transmission frame is detected, the first transmission frame or the second transmission frame received later is discarded.

4. The computer-readable recording medium according to claim 3, wherein: The process of issuing an identifier for uniquely identifying the transmission frame includes a process of issuing the identifier for a transmission destination of the transmission frame and for each of the transmission frames.

5. The computer-readable recording medium according to claim 3 or 4, wherein: The process of assigning the identifier to the transmission frame includes a process of assigning the identifier to an option area of ​​a header of the transmission frame.

6. The computer-readable recording medium according to claim 3 or 4, wherein: The process of assigning the identifier to the transmission frame includes: the process of assigning the identifier to the option area of ​​the data message header of the network layer.

7. The computer-readable recording medium according to claim 3 or 4, wherein: The duplication detection and discarding of the first transmission frame or the second transmission frame are performed in the data link layer installed in the CPU component.

8. The computer-readable recording medium according to claim 3 or 4, wherein: The duplicate detection and discarding of the first transmission frame or the second transmission frame are performed between the physical layer and the data link layer.

9. The computer-readable recording medium according to claim 3 or 4, wherein: The duplicate detection and discarding of the first transmission frame or the second transmission frame are performed between the data link layer and the network layer.

10. An information processing method, wherein: The following processing is performed by the information processing device: In response to receiving a transmission request for process control data, a transmission frame of the data link layer is copied to generate a first transmission frame and a second transmission frame, The first transmission frame is sent to a first NIC, where the NIC is a network interface card. sending the second transmit frame to the second NIC, sending the first transmit frame in the first NIC to a network, The second transmit frame in the second NIC is transmitted to the network.

11. An information processing device, wherein: The information processing device has a dual output unit, which performs the following processing: In response to receiving a transmission request for process control data, a transmission frame of the data link layer is copied to generate a first transmission frame and a second transmission frame, The first transmission frame is sent to a first NIC, where the NIC is a network interface card. sending the second transmit frame to the second NIC, sending the first transmit frame in the first NIC to a network, The second transmit frame in the second NIC is transmitted to the network.