Scada server client system
A multiplexed network with redundant configurations and parallel processing addresses communication failures in SCADA systems, ensuring stable and real-time data transmission and reception.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-18
- Publication Date
- 2026-03-26
AI Technical Summary
Existing SCADA server-client systems face instability in data transmission and reception due to communication path failures, leading to potential system downtime and inability to operate in real-time, especially in large-scale web-based HMI subsystems.
Implementing a multiplexed network with redundant configurations and parallel processing by multiple processor cores, where data is transmitted and received in parallel using multiplexed networks, and sequence numbers are assigned to packets to ensure stable operation even in the event of failures or network disconnections.
The system maintains stable operation by ensuring continuous data transmission and reception, even in the presence of failures or network disruptions, through redundant communication channels and parallel processing, thereby enhancing real-time performance.
Smart Images

Figure JP2024033309_26032026_PF_FP_ABST
Abstract
Description
SCADA Server-Client System
[0001] This disclosure relates to a SCADA server-client system with a redundant configuration.
[0002] SCADA (Supervisory Control and Data Acquisition) is known as a system for monitoring and controlling social infrastructure systems. Social infrastructure systems include steel rolling systems, power transmission and distribution systems, water and wastewater treatment systems, building management systems, and road systems.
[0003] SCADA is a type of industrial control system that performs system monitoring and process control using computers. SCADA generally consists of multiple subsystems, including an HMI (Human Machine Interface), a monitoring and control system, a Remote Terminal Unit (RTU), and a communication infrastructure. The HMI subsystem presents data on the target process to the operator, enabling the operator to monitor and control the process. The monitoring and control system, consisting of components such as a PLC (Programmable Logic Controller), collects data on the process and sends commands to the process. The Remote Input Output (RIO) connects to sensors installed within the process, converts the sensor signals into digital data, and sends that digital data to the monitoring and control system. The communication infrastructure connects the monitoring and control system and the Remote Input Output (RIO).
[0004] The client program of the HMI subsystem in Patent Document 1 is configured as a web-based HMI subsystem that does not depend on the machine environment in order to achieve cost reduction of the SCADA HMI subsystem. When the SCADA HMI subsystem is constructed as a web application that operates on a web browser, there are the following advantages. (1) Since web browsers are installed on many terminal devices such as personal computers and tablet PCs, various terminal devices can be used as the SCADA HMI subsystem. (2) Web browsers have high-functional rendering capabilities and are easy to incorporate advanced GUI interaction capabilities such as animations.
[0005] As one of the methods for the stable operation of the SCADA system, there is a method of introducing a redundant configuration. One of the configurations to be redundant is the SCADA server. As the redundant method of the SCADA server, the active / passive method and the active / active method are known. Among these, the active / active method is a method in which two duplicated servers operate simultaneously, and it is required that the two redundant servers operate in cooperation.
[0006] In realizing the active / active method, the allocation of the two redundant servers to each client becomes one point. In the SCADA web HMI system disclosed in Patent Document 1, a server connection priority list is dynamically distributed from the server to the client in the order of allocation considering load distribution. In the server connection priority list, the allocation of the two redundant servers to each client is determined in the order of allocation considering load distribution. Therefore, by each server connecting to one of the redundant servers according to the server connection priority list, the number of clients connecting to each server becomes equal and load distribution is achieved.
[0007] Japanese Patent No. 6888739
[0008] In large-scale web-based HMI subsystems, there are many devices to monitor, and the vast amount of signal data from these devices collected by the control network is transmitted to the SCADA server via a PLC and then distributed to clients. In large-scale web-based HMI subsystems, client operators monitor the SCADA server client system and perform necessary operations, which transmits control signals to the monitored devices to the control network via the SCADA server. To ensure stable operation of the SCADA server client system, all of these processes must be performed in real time.
[0009] Consider the case where a failure occurs in the communication path between the client and the SCADA server. In the SCADA system disclosed in Patent Document 1, in order to continue the operation of the system, a switch is made to the server with the highest connection priority among the operating servers, as defined in the server connection priority list. However, even if a server switch is made, as long as a failure occurs in the communication path, the SCADA system will not be able to send or receive data. As a result, the series of processes for sending and receiving data cannot be performed in real time, and there is a risk that the SCADA server-client system may not be able to operate stably.
[0010] This disclosure has been made in view of the issues described above. The purpose of this disclosure is to provide a communication method that enables stable operation of a SCADA server-client system.
[0011] To achieve the above objectives, the SCADA server-client system relating to the first aspect of this disclosure is configured as follows.
[0012] The SCADA server-client system relating to the first aspect of this disclosure comprises a multiplexed network, SCADA servers connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores, and clients connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores.
[0013] According to the first aspect of this disclosure, the SCADA server transmits data to the client in parallel using a multiplexed network. Also according to the first aspect of this disclosure, the client transmits data to the SCADA server in parallel using a multiplexed network.
[0014] To achieve the above objective, the SCADA server-client system relating to the second aspect of this disclosure may be further configured in the SCADA server-client system relating to the first aspect as follows:
[0015] According to a second aspect of this disclosure, the SCADA server assigns sequence numbers to packets it transmits in parallel using a multiplexed network. Also according to a second aspect of this disclosure, the client adopts only the first packet it receives among packets assigned the same sequence number.
[0016] Furthermore, in order to achieve the above objectives, the SCADA server-client system relating to the third aspect of this disclosure may be further configured in the SCADA server-client system relating to the first aspect as follows.
[0017] According to a third aspect of this disclosure, the client assigns sequence numbers to packets it transmits in parallel using a multiplexed network. Also according to a third aspect of this disclosure, the SCADA server adopts only the first packet it receives among packets assigned the same sequence number.
[0018] As described above, the SCADA server-client system relating to the first aspect of this disclosure includes a SCADA server connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores, and a client connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores. By using the multiplexed network, data is transmitted in parallel from the SCADA server to the client, and data is transmitted in parallel from the client to the SCADA server. This makes it possible to operate the SCADA server-client system stably even if some of the multiple SCADA servers stop working and the SCADA server communicating with the client changes, or if part of the multiplexed network is disconnected.
[0019] According to the SCADA server-client system relating to the second aspect of this disclosure, by using a multiplexed network, the SCADA server assigns sequence numbers to packets transmitted in parallel. Furthermore, the client only accepts the first packet received from among packets with the same sequence number. This allows for proper management of packets even when the same packet flows through a multiplexed network.
[0020] According to the SCADA server-client system relating to the third aspect of this disclosure, by using a multiplexed network, the client assigns sequence numbers to packets transmitted in parallel. Furthermore, the SCADA server only accepts the first packet received from among those assigned the same sequence number. This achieves the same effect as the second aspect described above.
[0021] This figure shows the configuration of a large-scale SCADA server-client system to which the web-based HMI subsystem according to the embodiment of this disclosure is applied. This figure shows the configuration of the web-based HMI subsystem according to the embodiment of this disclosure. This figure shows an example of the functional configuration of the web-based HMI subsystem for realizing a multiplexed communication method. This figure shows a specific example of packet transmission and reception in a multiplexed communication method. This is an explanatory diagram showing a comparative example of the client configuration example according to the embodiment of this disclosure. This is an explanatory diagram showing a bumpless communication-enabled configuration example of the client according to the embodiment of this disclosure. This is an explanatory diagram showing a comparative example of the SCADA server configuration example according to the embodiment of this disclosure. This is an explanatory diagram showing a bumpless communication-enabled configuration example of the SCADA server according to the embodiment of this disclosure.
[0022] The embodiments for implementing this disclosure will be described below with reference to the attached drawings. In each drawing, the same or corresponding parts will be denoted by the same reference numerals. The explanation of such parts will be simplified or omitted as appropriate.
[0023] 1. Diagram 1 of the configuration of a large-scale SCADA server-client system shows the configuration of a large-scale SCADA server-client system to which the web-based HMI subsystem according to the embodiment of this disclosure is applied. The large-scale SCADA server-client system 2 is a client-server system in which several tens of PLCs 300 and several hundred clients 100 are connected to a plurality of SCADA servers 200 via a computer network. Each of the plurality of PLCs 300 is connected to, for example, a control network 310 within the same plant. The control network 310 controls, for example, the transmission and reception of data between the PLCs 300 and the equipment to be monitored.
[0024] The PLC signal data output by each PLC 300 is input to the respective communication drivers 222 of the multiple SCADA servers 200. Each SCADA server 200 generates display signal data from the PLC signal data and distributes the display signal data from the client management unit 221 to each client 100. The client management unit 221 is a web server, and the client 100 is equipped with a web browser. The web browser displays, for example, an HMI screen with parts that display the status of the plant, and changes the display of the HMI screen according to the display signal data distributed from the client management unit 221.
[0025] 2. Configuration diagram 2 of the web-based HMI subsystem is a diagram showing the configuration of the web-based HMI subsystem according to the embodiment of this disclosure. The web-based HMI subsystem 10 includes multiple devices such as multiple SCADA servers 200, multiple clients 100, multiple PLCs 300, and multiple history data servers 400. Each device may be configured as a single unit, or it may be configured in a redundant configuration so that the system can continue to operate using another device if one device fails. The history data server 400 is, for example, a server for storing PLC signal data, etc.
[0026] Each device is connected to the same network. The network has a redundant configuration with multiple communication channels. The network is also referred to as the multiplexed communication channel 50. In other words, in the web-based HMI subsystem 10, each of the multiple devices such as multiple SCADA servers 200, multiple clients 100, multiple PLCs 300, and multiple history data servers 400 is connected to the multiplexed communication channel 50. In the example shown in Figure 2, the multiplexed communication channel 50 is duplicated into a first communication channel 51 and a second communication channel 52, and each device is connected to both the first communication channel 51 and the second communication channel 52.
[0027] Client 100 is a computer equipped with a processor 110, memory 120, and storage 130. Memory 120 includes program memory. Program memory stores programs that describe the processes to be executed by the processor 110. Each program consists of multiple instruction codes. A web browser 121 is also deployed on memory 120. SCADA web program 140 runs on the web browser 121.
[0028] The SCADA server 200 is a computer equipped with a processor 210, memory 220, and storage 230. The memory 220 includes program memory. The program memory stores programs that describe the processes to be executed by the processor 210. Each program consists of multiple instruction codes. In addition, a web server 221A and a communication driver 222, which act as client management units, are deployed on the memory 220.
[0029] The SCADA web program is first installed on the SCADA server 200. For installation, for example, the SCADA server installer (not shown) is used. By installing and running the SCADA server installer on the SCADA server 200, the SCADA web program 240 and the server program 250 are deployed on the storage 230. The web server 221A starts operating when the server program 250 is loaded into memory 220.
[0030] The SCADA web program 140, which runs on the web browser 121 of client 100, is loaded, for example, from the web server 221A on the SCADA server 200. The updated SCADA web program 140 on client 100 is updated when the updated SCADA web program 240 in storage 230 is loaded into the web browser 121 via the web server 221A.
[0031] In this way, the web-based HMI subsystem 10 has redundant devices connected to a redundant network (multiplexed communication channel 50). This makes it possible to continue operating the SCADA server-client system 2 even if some of the devices in the large-scale web-based HMI subsystem 10 fail.
[0032] 3. Multiplexed Communication Method 3-1. Functional Configuration Example Figure 3 shows an example of the functional configuration of the web-based HMI subsystem 10 for realizing the multiplexed communication method. The multiplexed communication method is a method of managing transmitted and received data using a multiplexed communication channel 50 so that communication can be performed between the client 100 and the redundant SCADA server 200. By applying the multiplexed communication method, it is expected that the SCADA server-client system 2 will be operated stably. The details of the functional configuration example of the web-based HMI subsystem 10 for realizing the multiplexed communication method will be explained below.
[0033] Client 100 is connected to multiple SCADA servers 200 via a multiplexed communication channel 50. Client 100 establishes communication connections with multiple SCADA servers 200. Client 100 may establish communication connections with only one SCADA server 200. For example, client 100 establishes communication connections with one of the multiple SCADA servers 200.
[0034] Consider the case where a device within the web-based HMI subsystem 10 (e.g., one of the SCADA servers 200 with which communication is established) fails. In this case, the client 100 will disconnect from the failed SCADA server 200. As another example, if the client 100 has only one SCADA server 200 with which it is connected, and that SCADA server 200 fails, the client 100 may disconnect from that SCADA server 200 and switch to a communication connection with another operational SCADA server 200. In this way, even if a SCADA server 200 with which communication is established fails, the client 100 can send and receive data with another SCADA server 200.
[0035] Furthermore, the client 100 and the SCADA server 200 are connected to the multiplexed communication channel 50. In the example shown in Figure 3, both the client 100 and the SCADA server 200 are connected to both the first communication channel 51 and the second communication channel 52. This ensures that even if one of the multiplexed communication channels 50 (e.g., the first communication channel 51) is disconnected, communication between the client 100 and the SCADA server 200 can be maintained by using another communication channel (e.g., the second communication channel 52).
[0036] Furthermore, the client 100 is equipped with a function (also called a data management function) to manage transmitted and received data for each communication channel during communication with the SCADA server 200 during communication. This allows the data to be properly managed even if the same data flows through each of the multiplexed communication channels 50. Note that the data management function within the client 100 may be provided for each SCADA server 200.
[0037] The SCADA server 200 has a function (data management function) to manage transmitted and received data for each communication channel during communication with one or more clients 100 that are connected. This allows the data to be properly managed even if the same data flows through each of the multiplexed communication channels 50.
[0038] The following describes in detail an example of the functional configuration of the client 100 and SCADA server 200 for realizing a multiplexed communication method.
[0039] 3-1-1. As shown in Figure 3, the client 100 is connected to a plurality of SCADA servers 200 (SCADA server 200A and SCADA server 200B) via a multiplexed communication channel 50. The client 100 includes a first data management function unit 160, a second data management function unit 170, and a controller unit 180.
[0040] The first data management function unit 160 manages the transmission and reception data between it and the SCADA server 200A using the multiplexed communication channel 50. The first data management function unit 160 comprises a first interface unit 161, a second interface unit 162, and a first packet management unit 163.
[0041] The first interface unit 161 communicates with the SCADA server 200A using the first communication path 51. The second interface unit 162 communicates with the SCADA server 200A using the second communication path 52.
[0042] The first packet management unit 163 manages the packets included in the transmission and reception data with the SCADA server 200A. Specifically, when receiving data (packets) from the SCADA server 200A, the first packet management unit 163 acquires packets from each of the first interface unit 161 and the second interface unit 162. Then, the first packet management unit 163 adopts only the first received packet among the packets assigned the same sequence number and transmits it to the controller unit 180. In this case, the first packet management unit 163 discards the packets received later among the packets assigned the same sequence number.
[0043] As another example, when transmitting data (packets) to the SCADA server 200A, the first packet management unit 163 receives packets from the controller unit 180 and assigns sequence numbers. Then, the first packet management unit 163 transfers the packets assigned sequence numbers to the first interface unit 161 and the second interface unit 162. Thereby, the packets assigned sequence numbers are transmitted to the SCADA server 200A in parallel using both the first communication path 51 and the second communication path 52. Details of the transmission and reception example of the packets assigned the same sequence number will be described later.
[0044] The second data management function unit 170 manages the transmission and reception data with the SCADA server 200B using the multiplexed communication path 50. The second data management function unit 170 includes a first interface unit 171, a second interface unit 172, and a second packet management unit 173.
[0045] The first interface unit 171 communicates with the SCADA server 200B using the first communication path 51. The second interface unit 172 communicates with the SCADA server 200B using the second communication path 52.
[0046] The second packet management unit 173 manages the packets included in the data transmitted and received with the SCADA server 200B. Specifically, when receiving data (packets) from the SCADA server 200B, the second packet management unit 173 acquires packets from each of the first interface unit 171 and the second interface unit 172. Then, the second packet management unit 173 adopts only the first received packet among the packets assigned the same sequence number and transmits it to the controller unit 180. In this case, the second packet management unit 173 discards the packets received later among the packets assigned the same sequence number.
[0047] As another example, when transmitting data (packets) to the SCADA server 200B, the second packet management unit 173 receives a packet from the controller unit 180 and assigns a sequence number. Then, the second packet management unit 173 transfers the packet assigned the sequence number to the first interface unit 171 and the second interface unit 172. As a result, the packets assigned the sequence number are transmitted to the SCADA server 200B in parallel using both the first communication path 51 and the second communication path 52. Details of the transmission and reception example of the packets assigned the same sequence number will be described later.
[0048] The controller unit 180 switches the communication connection with the SCADA server 200. Specifically, the controller unit 180 acquires various types of information. The various types of information include the communication connection information of each SCADA server 200 and the status information of each SCADA server 200. The communication connection information is information indicating the connection status with the client 100. For example, the communication connection information includes information such as the connection status between the SCADA server 200A and the client 100 being "connected" and the connection status between the SCADA server 200B and the client 100 being "disconnected". The status information includes the abnormality information of the SCADA server 200 and the like. For example, the status information includes information such as the abnormality information of the SCADA server 200A being "normal" and the abnormality information of the SCADA server 200B being "abnormal".
[0049] The controller unit 180 selects the SCADA server 200 to communicate with based on the communication connection information and status information of each SCADA server 200. For example, if the abnormality information for both SCADA server 200A and SCADA server 200B is "normal", the controller unit 180 selects both SCADA server 200A and SCADA server 200B as the SCADA servers 200 to communicate with the client 100.
[0050] As another example, if the error information for SCADA server 200A is "normal" and the error information for SCADA server 200B is "abnormal", the controller unit 180 selects SCADA server 200A as the SCADA server 200 to communicate with client 100. If both SCADA server 200A and SCADA server 200B are currently communicating with SCADA server 200, the controller unit 180 selects SCADA server 200A.
[0051] The controller unit 180 transmits and receives data (packets) to and from the PLC through the selected SCADA server 200.
[0052] Furthermore, the various functions of the client 100 described above are modules of the SCADA web program 140 that runs on the web browser 121.
[0053] 3-1-2. SCADA Servers SCADA Server 200A and SCADA Server 200B have the same functions. Specifically, the first interface unit 271, the second interface unit 272, and the client management unit 273 provided in SCADA Server 200B have the same functions as the first interface unit 261, the second interface unit 262, and the client management unit 263 provided in SCADA Server 200A. Therefore, only SCADA Server 200A will be described here, and the description of SCADA Server 200B will be omitted.
[0054] The SCADA server 200A includes a first interface unit 261, a second interface unit 262, and a client management unit 263.
[0055] The first interface unit 261 communicates with the client 100 using the first communication channel 51. The second interface unit 262 communicates with the client 100 using the second communication channel 52.
[0056] The client management unit 263 manages the packets contained in the data transmitted and received between it and the client 100. Specifically, when the client management unit 263 receives data (packets) from the client 100, it acquires packets from both the first interface unit 261 and the second interface unit 262. The client management unit 263 then adopts only the first packet received among packets with the same sequence number, and discards packets received later among packets with the same sequence number.
[0057] As another example, when transmitting data (packets) to client 100, the client management unit 263 forwards packets with sequence numbers to the first interface unit 261 and the second interface unit 262. As a result, packets with sequence numbers are transmitted to client 100 in parallel using both the first communication channel 51 and the second communication channel 52. Details of the transmission and reception of packets with the same sequence number will be described later.
[0058] Furthermore, the various functions of the SCADA server 200 described above are modules of the SCADA web program 240 that runs on the web server 221A.
[0059] 3-2. Specific Examples of Packet Transmission and Reception Figure 4 shows a specific example of packet transmission and reception in a multiplexed communication system. The same data (packet) flows through each communication channel of the multiplexed communication channel 50. If the receiving side receives multiple identical packets, only one packet is used. Therefore, if the receiving side receives identical packets, it is sufficient to select only one of the identical packets and discard the others.
[0060] For example, consider the case where SCADA server 200 sends data (packets) to client 100. In this case, the transmitting SCADA server 200 assigns a sequence number to the packets that are sent in parallel using the multiplexed communication channel 50. The sequence number may be, for example, a number assigned to the beginning of the packet and incremented by one each time.
[0061] The receiving client 100 adopts only the first packet it receives among packets assigned the same sequence number. In this case, the client 100 discards the packets received later.
[0062] As another example, consider the case where client 100 sends data to SCADA server 200. In this case, the sending client 100 assigns a sequence number to the packets it transmits in parallel using the multiplexed communication channel 50. Details of the sequence number are as described above.
[0063] The receiving SCADA server 200 adopts only the first packet it receives among those assigned the same sequence number. In this case, the SCADA server 200 discards the packets received later.
[0064] In the example shown in Figure 4, the transmitting SCADA server 200 assigns a sequence number (1, 2, 3, 4) to each packet (packet a, packet b, packet c, packet d) in the transmitted data. The SCADA server 200 then sends packets with sequence numbers assigned to both the first communication channel 51 and the second communication channel 52 in parallel to the receiving client 100. Of the packets a with sequence number "1" received from both the first communication channel 51 and the second communication channel 52, the client 100 adopts the packet a with sequence number "1" that was first received from the first communication channel 51. The SCADA server 200 also discards the packet a with sequence number "1" that was later received from the second communication channel 52. Packets b, c, and d are adopted and discarded in the same manner. Furthermore, if the sender is client 100 and the receiver is SCADA server 200, the same method is used to select and discard packets within the data.
[0065] 3-3. Examples of Performance Improvement As described above, since the same data flows through the multiplexed communication channel 50, the amount of data flowing through the multiplexed communication channel 50 is greater than that of the non-multiplexed communication channel. For example, the amount of data flowing through the redundant communication channel is twice the amount of data flowing through the non-multiplexed communication channel. For this reason, the multiplexed communication method may have lower performance than the non-multiplexed communication method. Therefore, in order to operate the SCADA server-client system 2 more stably, improvement in real-time performance is desirable.
[0066] One example of a method to improve real-time performance is to use parallel processing with multiple processor cores. For example, by having multiple processor cores perform parallel processing to send and receive the same data flowing through the multiplexed communication channel 50, the timing of sending and receiving that same data can be performed simultaneously.
[0067] For example, the first interface unit 161 and the second interface unit 162 of client 100 are assigned to be processed by different processor cores. This allows the first interface unit 161 and the second interface unit 162 to be processed in parallel by multiple processor cores. As another example, the first interface unit 261 and the second interface unit 262 of SCADA server 200A are assigned to be processed by different processor cores. This allows the first interface unit 261 and the second interface unit 262 to be processed in parallel by multiple processor cores.
[0068] According to this embodiment, the SCADA server 200 is connected to each of the multiplexed networks (multiplexed communication channels 50) and is configured to enable parallel processing by multiple processor cores. Similarly, the client 100 is connected to each of the multiplexed networks (multiplexed communication channels 50) and is configured to enable parallel processing by multiple processor cores. This reduces the communication time between the client 100 and the SCADA server 200 in a multiplexed communication system using the multiplexed communication channels 50, thereby improving real-time performance. Consequently, the SCADA server-client system 2 can be operated more stably.
[0069] 3-4. Example of bumpless communication 3-4-1. Client 3-4-1-1. Comparative Example Consider the case where communication on either the first communication channel 51 or the second communication channel 52 is interrupted. In this case, it may not be possible to perform bumpless communication between the client 100 and the SCADA server 200. Bumpless means that no overhead occurs that would hinder the operation of the system.
[0070] For example, consider the case where client 100 has the configuration shown in Figure 5. Figure 5 is an explanatory diagram showing a comparative example of client 100 according to the embodiment of this disclosure. Specifically, client 100 includes an HMI screen display unit 181, a first packet management unit 163, a first interface unit 161, a second interface unit 162, a second packet management unit 173, a first interface unit 171, and a second interface unit 172.
[0071] The HMI screen display unit 181 displays or updates the HMI screen based on packets acquired from the first packet management unit 163 or the second packet management unit 173. Details of the first packet management unit 163 and the second packet management unit 173 are as described above.
[0072] Each of the first interface units 161 and 171 includes a first transmission processing unit, a first reception processing unit, a first connection processing unit, and a first disconnection processing unit. The first transmission processing unit of the first interface unit 161 transmits data acquired from the SCADA server 200A to the first packet management unit 163. The first transmission processing unit of the first interface unit 171 transmits data acquired from the SCADA server 200B to the second packet management unit 173. The first reception processing unit of the first interface unit 161 receives data transmitted from the SCADA server 200A via the first communication channel 51. The first reception processing unit of the first interface unit 171 receives data transmitted from the SCADA server 200B via the first communication channel 51. The first connection processing unit of the first interface unit 161 establishes communication with the SCADA server 200A if the communication status of the first communication channel 51 is normal. The first connection processing unit of the first interface unit 171 establishes communication with the SCADA server 200B if the communication status of the first communication channel 51 is normal. The first disconnection processing unit of the first interface unit 161 disconnects communication with the SCADA server 200A if the communication status of the first communication channel 51 is abnormal. The first disconnection processing unit of the first interface unit 171 disconnects communication with the SCADA server 200B if the communication status of the first communication channel 51 is abnormal.
[0073] Each of the second interface units 162 and 172 includes a second transmission processing unit, a second reception processing unit, a second connection processing unit, and a second disconnection processing unit. The second transmission processing unit of the second interface unit 162 transmits data acquired from the SCADA server 200A to the first packet management unit 163. The second transmission processing unit of the second interface unit 172 transmits data acquired from the SCADA server 200B to the second packet management unit 173. The second reception processing unit of the second interface unit 162 receives data transmitted from the SCADA server 200A via the second communication channel 52. The second reception processing unit of the second interface unit 172 receives data transmitted from the SCADA server 200B via the second communication channel 52. The second connection processing unit of the second interface unit 162 establishes communication with the SCADA server 200A if the communication status of the second communication channel 52 is normal. The second connection processing unit of the second interface unit 172 establishes communication with the SCADA server 200B if the communication status of the second communication channel 52 is normal. The second disconnection processing unit of the second interface unit 162 disconnects communication with the SCADA server 200A if the communication status of the second communication channel 52 is abnormal. The second disconnection processing unit of the second interface unit 172 disconnects communication with the SCADA server 200B if the communication status of the second communication channel 52 is abnormal.
[0074] Various processes of client 100 operate in the same thread (main thread MTH), as shown in Figure 5, for example. In this configuration, if the communication state of the second communication channel 52 becomes abnormal, the second interface unit 162 and the second interface unit 172 each perform a disconnection process. In this case, the disconnection process of the second interface unit 162 and the second interface unit 172, which operate in the same main thread MTH, takes precedence, and the first interface unit 161 cannot perform the receive process to receive data from SCADA server 200A. Similarly, the first interface unit 171 cannot perform the receive process to receive data from SCADA server 200B. In other words, the receive processes of the first interface unit 161 and the first interface unit 171 enter a waiting state. In this case, the reception timing of the first interface unit 161 receiving data from SCADA server 200A is delayed. Also, the reception timing of the first interface unit 171 receiving data from SCADA server 200B is delayed. Therefore, this affects the reception processing of the first interface unit 161 and the first interface unit 171.
[0075] Thus, if communication on either the first communication channel 51 or the second communication channel 52 is interrupted, in the example of client 100, even if there is a redundant communication channel between client 100 and SCADA server 200, it may affect the other communication channel and make it impossible to communicate without bumps.
[0076] 3-4-1-2. Configuration Example According to this embodiment, the client 100 is shown in the configuration of Figure 6. Figure 6 is an explanatory diagram showing a bumpless communication configuration example of the client 100 according to the embodiment of this disclosure. As shown in Figure 6, the client 100 does not execute all processing in the main thread MTH, but executes part of the processing in a separate thread.
[0077] Specifically, client 100 executes the HMI screen display unit 181 on the main thread MTH, and executes various other processes on worker threads. A worker thread refers to the parallelization of multiple processes using the functionality of a web worker. A web worker is a function that moves the processing of a web application in the web browser 121 to a thread separate from the main thread MTH, and allows it to run asynchronously in the background.
[0078] In the example shown in Figure 6, the HMI screen display unit 181 is executed in the main thread MTH, the first packet management unit 163 is executed in the first worker thread WTH1, the second packet management unit 173 is executed in the second worker thread WTH2, the first interface unit 161 is executed in the third worker thread WTH3, the second interface unit 162 is executed in the fourth worker thread WTH4, the first interface unit 171 is executed in the fifth worker thread WTH5, and the second interface unit 172 is executed in the sixth worker thread WTH6.
[0079] In this way, the client 100 assigns and executes a different thread for each process. This ensures that even if an abnormality occurs in the communication of either the first communication channel 51 or the second communication channel 52, and the disconnection process for the abnormal communication channel is executed, it does not affect the receiving process on the other communication channel. Therefore, the client 100 according to the embodiment of this disclosure can communicate with the SCADA server 200 without bumps.
[0080] 3-4-2. SCADA Server 3-4-2-1. Comparative Example 3-4-2-1-1. First Problem Let us consider the configuration of a SCADA server 200 that can communicate without bumps. Since SCADA server 200A and SCADA server 200B have the same configuration, we will describe SCADA server 200A here and omit the description of SCADA server 200B. For example, let us consider the case where SCADA server 200A has the configuration shown in Figure 7. Figure 7 is an explanatory diagram showing a comparative example of SCADA server 200A according to the embodiment of this disclosure.
[0081] Specifically, the SCADA server 200A includes a client management unit 263, a first interface unit 261 for each client 100, and a second interface unit 262 for each client 100. As shown in Figure 2, the client management unit 263 starts the web server 221A. After the web server 221A starts, a web socket connection is established when the client 100 connects to the web server 221A, enabling data transmission and reception between the client 100 and the SCADA server 200. A web socket is a communication protocol for bidirectional communication.
[0082] In the example shown in Figure 7, the websocket includes a websocket WS1 for the first communication channel 51 and a websocket WS2 for the second communication channel 52. Websocket WS1 and websocket WS2 are provided for each client 100.
[0083] The client management unit 263 includes a websocket management dictionary 500. The websocket management dictionary 500 is an associative array in which each websocket (websocket WS1, websocket WS2) is used as the key and the connection status of each websocket is used as the value. For example, if the first client 100 is connected to websocket WS1, the websocket management dictionary 500 manages the connection status of the first client 100's websocket WS1 as "connected". As another example, if the second client 100 is not connected to websocket WS1, the websocket management dictionary 500 manages the connection status of the second client 100's websocket WS1 as "disconnected".
[0084] As shown in Figure 7, various processes of the SCADA server 200A (client management unit 263, first interface unit 261, second interface unit 262) operate, for example, in the same thread (communication thread CTH). In this configuration, if the second communication channel 52 between the client 100 and the SCADA server 200A is disconnected, the second interface unit 262 performs disconnection processing. In this case, the disconnection processing of the second interface unit 262, which operates in the same communication thread CTH, takes precedence, and the first interface unit 261 cannot perform reception processing to receive data from the client 100. In other words, the reception processing of the first interface unit 261 is put into a waiting state. In this case, the reception timing at which the first interface unit 261 receives data from the PLC 300 is delayed. Consequently, this affects the reception processing of the first interface unit 261. The problems related to this comparative example of the SCADA server 200 are referred to as the "first problem".
[0085] 3-4-2-1-2. Second Issue The disconnection processing unit of each interface processing unit needs to reflect the result in the websocket management dictionary 500 after performing the disconnection process. That is, it changes the connection status of the corresponding websocket in the websocket management dictionary 500 to "disconnected". During this process, the disconnection processing unit locks the websocket management dictionary 500. The client management unit 263 refers to the websocket management dictionary 500 for the data received from the communication driver 222 and sends it to the transmission processing unit of the interface unit corresponding to the websocket whose connection status is "connected". However, while the disconnection processing unit is locked in the websocket management dictionary 500, it is not possible to refer to the websocket management dictionary 500, so the data transmission process to the client 100 is delayed. For example, if the first communication channel of the SCADA server is disconnected, all disconnection processes of the first interface unit will be performed, so the time during which the websocket management dictionary 500 is locked will be longer. During that time, even if there is no abnormality in the second communication channel 52, the transmission and reception processing of the second communication channel 52 will be delayed due to the influence of the first communication channel 51. The issue related to mutual exclusion in the WebSocket management dictionary 500 is referred to as the "second issue."
[0086] 3-4-2-1-3. Third Problem The first interface unit 261 and the second interface unit 262 use web sockets (web socket WS1, web socket WS2) managed by the same web server 221A. In this configuration, if the second communication channel 52 between the client 100 and the SCADA server 200A is disconnected, the disconnection process of web socket WS2 corresponding to the second communication channel 52 takes priority, affecting the transmission and reception of data by web socket WS1 corresponding to the first communication channel 51. The problem relating to this comparative example of the SCADA server 200 is referred to as the "third problem".
[0087] 3-4-2-2. Specific Example 3-4-2-2-1. Example of Thread Configuration According to the embodiment of the present disclosure, the SCADA server 200 is shown in the configuration of Figure 8. Figure 8 is an explanatory diagram showing an example of a bumpless communication configuration of the SCADA server 200 according to the embodiment of the present disclosure. As shown in Figure 8, the SCADA server 200 configures the communication thread CTH into three threads. Specifically, the SCADA server 200 executes the client management unit 263 in the communication management thread CMTH, the first interface unit 261 of each client 100 in the first communication thread CTH1, and the second interface unit 262 of each client 100 in the second communication thread CTH2. As a result, the client management unit 263, the first interface unit 261, and the second interface unit 262 can each operate independently. Therefore, even if communication on either the first communication channel 51 or the second communication channel 52 is interrupted, it is possible to prevent it from affecting the other communication channel. Therefore, the SCADA server 200 according to the embodiment of this disclosure can solve the "first problem" described above.
[0088] 3-4-2-2-2. Example of WebSocket Configuration According to the embodiment of this disclosure, the SCADA server 200 manages the web socket management dictionary 500 by dividing it into a web socket management dictionary 501 for the first communication channel 51 and a web socket management dictionary 502 for the second communication channel 52. The web socket management dictionary 501 manages the connection status of web socket WS1, and the web socket management dictionary 502 manages the connection status of web socket WS2. Specifically, the web socket management dictionary 501 is an associative array in which each web socket WS1 is the key and the connection status of each web socket WS1 is the value. The web socket management dictionary 502 is an associative array in which each web socket WS2 is the key and the connection status of each web socket WS2 is the value. The web socket management dictionary 501 is used when the first communication thread CTH1 is executed, and the web socket management dictionary 502 is used when the second communication thread CTH2 is executed.
[0089] Furthermore, according to embodiments of this disclosure, the client management unit 263 includes a client management list 503. The client management list 503 includes a list of clients that are currently communicating with the SCADA server 200 using either or both of the first communication channel 51 and the second communication channel 52.
[0090] The client management unit 263 refers to the client management list 503 to determine whether to send the data received from the communication driver 222 to the client 100. If the client 100 is registered in the client management list 503, the client management unit 263 sends the data to the first communication thread CTH1 and the second communication thread CTH2. If the client 100 is not registered in the client management list 503, the client management unit 263 discards the data.
[0091] Thus, even if communication on either the first communication channel 51 or the second communication channel 52 is interrupted, the client management unit 263 maintains the connection status with client 100 as "connected" in the client management list 503. In other words, client 100 remains registered in the list within the client management list 503. Since the contents of the client management list 503 are not changed, there is no delay in the transmission timing of sending data received from the PLC 300 to the first communication thread CTH1 and the second communication thread CTH2.
[0092] Furthermore, according to the embodiments of this disclosure, a first queue 600 is used for data transfer between the client management unit 263 and the first communication thread CTH1, and a second queue 601 is used for data transfer between the client management unit 263 and the second communication thread CTH2. The first queue 600 and the second queue 601 are, for example, double buffered. Double buffering has two buffers in different memory spaces.
[0093] Of the two buffers, the one being accessed by the transmission processing unit becomes busy. The client management unit 263 can store data in the buffer that is not busy when storing data in the queue.
[0094] Due to the double buffering mechanism, data transfer between the client management unit 263 and the first communication thread CTH1 is performed asynchronously. Therefore, no communication delay occurs during data transfer between the client management unit 263 and the first communication thread CTH1. Similarly, data transfer between the client management unit 263 and the second communication thread CTH2 is performed asynchronously. Therefore, no communication delay occurs during data transfer between the client management unit 263 and the second communication thread CTH2.
[0095] Furthermore, mutual exclusion is implemented to prevent simultaneous execution of the update and reference processes of the websocket management dictionary 501, the websocket management dictionary 502, and the client management list 503. For example, if communication on either the first communication channel 51 or the second communication channel 52 is disconnected, the disconnection process of the interface unit corresponding to the disconnected communication channel (first interface unit 261 or second interface unit 262) is executed, and the websocket management dictionary corresponding to the disconnected communication channel (websocket management dictionary 501 or websocket management dictionary 502) is locked.
[0096] However, the WebSocket management dictionary corresponding to the other communication channel that is not disconnected operates independently of the WebSocket management dictionary corresponding to the disconnected communication channel, and is therefore not locked. Furthermore, the transmission process of the interface unit corresponding to the other communication channel that is not disconnected operates in a separate thread from the transmission process of the interface unit corresponding to the disconnected communication channel. This makes it possible to prevent the other communication channel from being affected even if the communication on either the first communication channel 51 or the second communication channel 52 is disconnected. Therefore, the SCADA server 200 according to the embodiment of this disclosure can solve the "second problem" described above.
[0097] 3-4-2-2-3. Example of Web Server Configuration According to the embodiment of the present disclosure, the SCADA server 200 is configured by dividing the web server 221A into a web server 221B for the first communication channel 51 and a web server 222C for the second communication channel 52. For example, if communication on either the first communication channel 51 or the second communication channel 52 is interrupted, the web server corresponding to the other communication channel operates independently of the web server corresponding to the interrupted communication channel. This makes it possible to influence the other communication channel. Therefore, the SCADA server 200 according to the embodiment of the present disclosure can solve the "third problem" described above.
[0098] Thus, the SCADA server 200, by having the configuration described in the above sections "3-4-2-2-1", "3-4-2-2-2", and "3-4-2-2-3", achieves a configuration that enables communication without bumps.
[0099] 4. Effects According to this disclosure, the SCADA server-client system 2 is provided with SCADA servers 200 connected to each of the multiplexed networks (multiplexed communication channels 50) and capable of parallel processing by multiple processor cores, and clients 100 connected to each of the multiplexed communication channels 50 and capable of parallel processing by multiple processor cores. By using the multiplexed communication channels 50, data (packets) are transmitted in parallel from the SCADA server 200 to the clients 100, and data (packets) are transmitted in parallel from the clients 100 to the SCADA server 200. As a result, even if some of the multiple SCADA servers 200 stop working and the SCADA server 200 communicating with the clients 100 is changed, or if some of the networks (communication channels) of the multiplexed network (multiplexed communication channels 50) are disconnected, the SCADA server-client system 2 can be operated stably.
[0100] Furthermore, a sequence number is assigned to packets transmitted in parallel by the SCADA server 200, and only the first packet received by the client 100 with the same sequence number is selected. Alternatively, a sequence number is assigned to packets transmitted in parallel by the client 100, and only the first packet received by the SCADA server 200 with the same sequence number is selected. This makes it possible to properly manage the data (packets) even if the same data (packets) flows through the multiplexed network (multiplexed communication channel 50).
[0101] 2 SCADA Server Client System 10 Web-based HMI subsystem 50 Multiplexed communication channel 51 First communication channel 52 Second communication channel 100 Client 110 Processor 120 Memory 121 Web browser 130 Storage 140 SCADA web program 160 First data management function unit 161 First interface unit 162 Second interface unit 163 First packet management unit 170 Second data management function unit 171 First interface unit 172 Second interface unit 173 Second packet management unit 180 Controller unit 181 HMI screen display unit 200, 200A, 200B SCADA server 210 Processor 220 Memory 221 Client management unit 221A, 221B, 221C Web server 222 Communication driver 230 Storage 240 SCADA Web Program 250 Server Program 261 First Interface Unit 262 Second Interface Unit 263 Client Management Unit 271 First Interface Unit 272 Second Interface Unit 273 Client Management Unit 300 PLC 400 History Data Server 500, 501, 502 WebSocket Management Dictionary 503 Client Management List MTH Main Thread WTH1 First Worker Thread WTH2 Second Worker Thread WTH3 Third Worker Thread WTH4 Fourth Worker Thread WTH5 Fifth Worker Thread WTH6 Sixth Worker Thread WS1, WS2 WebSocket CTH Communication Thread CMTH Communication Management Thread CTH1 First Communication Thread CTH2 Second Communication Thread
Claims
1. A SCADA server-client system comprising: a multiplexed network; SCADA servers connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores; and clients connected to each of the multiplexed networks and capable of parallel processing by multiple processor cores, wherein the SCADA servers transmit data to the clients in parallel using the multiplexed network, and the clients transmit data to the SCADA servers in parallel using the multiplexed network.
2. The SCADA server-client system according to claim 1, wherein the SCADA server assigns a sequence number to packets transmitted in parallel using the multiplexed network, and the client adopts only the first packet received from among the packets assigned the same sequence number.
3. The SCADA server-client system according to claim 1, wherein the client assigns a sequence number to packets transmitted in parallel using the multiplexed network, and the SCADA server adopts only the first packet received from among the packets assigned the same sequence number.
Citation Information
Patent Citations
Communication pass through shared system resource to provide communication with high availability, network file server and its method
JP2002041348A
Communication control device
JP2016225929A
Redundant communication system
WO2023145133A1