SCADA systems

JPWO2025154179A5Active Publication Date: 2025-12-16TMEIC CORP (100 00)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025503133
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-01-16
Publication Date
2025-12-16
Estimated Expiration
2044-01-16

AI Technical Summary

Technical Problem

Existing SCADA systems with active/active redundancy methods lack the ability to statically specify a server connection while achieving load balancing, leading to potential instability if clients connect unpredictably to redundant servers.

Method used

A SCADA system with a static priority list that specifies the connection priority for certain clients and dynamic load balancing for others, ensuring consistent server connection based on predefined priorities and load distribution.

Benefits of technology

Ensures stable server connections by statically specifying the connection for some clients and balancing load for others, maintaining redundancy and load balancing simultaneously.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000009_0000
    Figure 00000009_0000
  • Figure 00000009_0001
    Figure 00000009_0001
  • Figure 00000009_0002
    Figure 00000009_0002
Patent Text Reader

Abstract

A SCADA system according to one embodiment of the present disclosure includes a plurality of clients that can connect to each of a plurality of SCADA servers, and an engineering tool that generates a static priority list that specifies a static priority for connection between at least one of the plurality of clients and each SCADA server. Each client is connected to a SCADA server to which all of a plurality of programmable logic controllers are connected. For a client for which a static priority is specified in the static priority list, a SCADA server to which the client connects is determined according to the static priority specified in the list. For a client for which a static priority is not specified in the static priority list, a SCADA server to which the client connects is determined so that the load is equalized among the SCADA servers to which all of the programmable logic controllers are connected.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a SCADA system with a redundant configuration. [Background technology]

[0002] Patent Document 1 discloses technology related to a SCADA system. SCADA (Supervisory Control And Data Acquisition) is known as a mechanism for monitoring and controlling social infrastructure systems. Social infrastructure systems include steel rolling systems, power transmission and transformation systems, water and sewage treatment systems, building management systems, road systems, etc.

[0003] SCADA is a type of industrial control system that uses computers to monitor systems and control processes. SCADA generally consists of multiple subsystems, such as an HMI (Human Machine Interface), a supervisory control system, a remote terminal unit (RTU), and a communications infrastructure. The HMI subsystem presents data from the target process to the operator, allowing the operator to monitor and control the process. The supervisory control system is composed of components such as a programmable logic controller (PLC), and collects process data 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 the digital data to the supervisory control system. The communications infrastructure connects the supervisory control system and the remote supervisory control system.

[0004] One way to ensure stable operation of a SCADA system is to introduce a redundant configuration. One such configuration is the SCADA server. Known methods for making SCADA servers redundant are the active / passive method and the active / active method. Of these, the active / active method is a method in which two duplicated servers operate simultaneously, and the two redundant servers are required to work in coordination.

[0005] One key point in implementing the active / active method is the allocation of two redundant servers to each client. 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 accordance with an allocation order that takes load balancing into consideration. The server connection priority list determines the allocation of two redundant servers to each client in accordance with an allocation order that takes load balancing into consideration. Therefore, by each server connecting to one of the redundant servers in accordance with the server connection priority list, the number of clients connected to each server is equalized, thereby achieving load balancing. [Prior art documents] [Patent documents]

[0006] [Patent Document 1] Patent No. 6888739 Summary of the Invention [Problem to be solved by the invention]

[0007] In the SCADA system disclosed in Patent Document 1, connection priority is determined by the order in which clients connect to the server. Therefore, the server to which a client connects changes depending on the order in which the clients are started. Because the redundant servers are virtualized, it is guaranteed that the client's operation will be the same regardless of which server it is connected to. However, depending on the operation, there is a desire to fix the server that each client is preferentially connected to. For example, if two clients are placed in each monitoring area, one of the two clients in the same area can be connected to one of the two redundant servers, and the other client can be connected to the other server, thereby reducing the probability that both clients will be unavailable at the same time.

[0008] The present disclosure has been made in view of the above-mentioned problems, and aims to provide a SCADA system that allows a client to statically specify a server to connect to while achieving server redundancy and load balancing. [Means for solving the problem]

[0009] In order to achieve the above object, the SCADA system according to the first aspect of the present disclosure is configured as follows.

[0010] A SCADA system according to a first aspect of the present disclosure includes a plurality of SCADA servers, a plurality of clients, and an engineering tool. Each SCADA server is configured to be connectable to a plurality of programmable logic controllers. Each client is configured to be connectable to each SCADA server. The engineering tool is configured to generate a static priority list. The static priority list is a list that specifies, for at least one client, a static priority of connection between each SCADA server and the SCADA server.

[0011] Each client is connected to a SCADA server to which all programmable logic controllers are connected. However, for a client for which a static priority is specified in the static priority list, the SCADA server to which the client connects is determined according to the static priority specified in the static priority list. On the other hand, for a client for which a static priority is not specified in the static priority list, the SCADA server to which the client connects is determined so that the load is balanced among the SCADA servers to which all of the multiple programmable logic controllers are connected.

[0012] In order to achieve the above object, the SCADA system according to the second aspect of the present disclosure may be further configured as follows in addition to the SCADA system according to the first aspect.

[0013] Each SCADA server may monitor the connection status with each programmable logic controller, and may connect to at least one client when connected to all programmable logic controllers. When the SCADA server connects to at least one client, for a client whose priority is specified in a static priority list, the SCADA server may refer to the priority specified in the static priority list to determine whether or not the client is to be connected. On the other hand, for a client whose priority is not specified in the static priority list, the SCADA server may refer to the load between the SCADA servers to which all of the multiple programmable logic controllers are connected to determine whether or not the client is to be connected. [Effects of the Invention]

[0014] According to a SCADA system according to an aspect of the present disclosure, only the SCADA server connected to all programmable logic controllers is connected to a client. For clients for which a static priority is specified, the connection destination is determined according to the static priority. For clients for which a static priority is not specified, the connection destination is determined so that the load is balanced among the SCADA servers. Therefore, according to the SCADA system according to an aspect of the present disclosure, the server to which a client connects can be statically specified while achieving server redundancy and load balancing. [Brief explanation of the drawings]

[0015] [Figure 1] 1 is a diagram illustrating a configuration of a SCADA system according to an embodiment of the present disclosure. [Figure 2] FIG. 1 illustrates a functional diagram of a SCADA server according to an embodiment of the present disclosure. [Figure 3] 10 is a table for explaining server selection conditions by a client. [Figure 4] 10 is a table showing the configuration of server status data. [Figure 5] FIG. 10 is a diagram illustrating an example of a setting screen for connection priority displayed on an engineering tool. [Figure 6] FIG. 2 is a diagram for explaining the operation of the SCADA system according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0016] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. In each drawing, the same or corresponding parts are designated by the same reference numerals. Duplicate descriptions of these parts will be appropriately simplified or omitted.

[0017] 1. SCADA system configuration 1 is a diagram showing an example of the configuration of a SCADA system 2 according to this embodiment. The SCADA system 2 has a redundant configuration in which SCADA servers are duplicated. The SCADA system 2 includes a pair of a first SCADA server 20-1 (hereinafter referred to as SCADA server 20-1) and a second SCADA server 20-2 (hereinafter referred to as SCADA server 20-2). The SCADA server 20-1 and the SCADA server 20-2 are equal to each other in the SCADA system 2.

[0018] The SCADA system 2 is a client-server system in which several tens of programmable logic controllers (PLCs) 30 and several hundred clients 10 are connected to two SCADA servers 20-1 and 20-2 via a network (not shown). In the SCADA system 2, the network connecting these devices is also duplicated. The network includes a first network and a second network. The SCADA server 20-1, the SCADA server 20-2, each client 10, and each PLC 30 are connected to both the first network and the second network.

[0019] The SCADA server 20-1 includes a processor (processing circuit) 21-1 and a memory 22-1 coupled to the processor 21-1. The processor 21-1 is typically a CPU. However, the processor 21-1 may include a GPU in addition to the CPU, or may include other processing units such as an FPGA. There may be multiple processors 21-1.

[0020] The memory 22-1 stores a program consisting of a plurality of instructions INST that can be executed by the processor 21-1. The program consisting of the instructions INST may be constructed as a web application that runs on a web browser. The program consisting of the instructions INST may be obtained using a computer-readable non-transitory storage medium.

[0021] The memory 22-1 also stores specification information SPEC. The specification information SPEC includes a static priority list, which will be described later. The specification information SPEC may be stored in advance in the memory 22-1, or may be acquired by the memory 22-1 via a network. The memory 22-1 may be built into the processor 21-1. There may also be multiple memories 22-1.

[0022] The SCADA server 20-2 includes a processor (processing circuit) 21-2 and a memory 22-2 coupled to the processor 21-2. The processor 21-2 is typically a CPU. However, the processor 21-2 may include a GPU in addition to the CPU, or may include other processing units such as an FPGA. There may be multiple processors 21-2.

[0023] The memory 22-2 stores a program that is executable by the processor 21-2 and is composed of a plurality of instruction INSTs. The program is composed of the same instruction INSTs as the program stored in the memory 22-1 of the SCADA server 20-1. The program composed of the instruction INSTs may be constructed as a web application that runs on a web browser. The program composed of the instruction INSTs may be acquired using a computer-readable non-transitory storage medium.

[0024] The memory 22-2 also stores specification information SPEC. The specification information SPEC includes a static priority list. At least the static priority list of the specification information SPEC is common between the specification information SPEC stored in the memory 22-1 and the specification information SPEC stored in the memory 22-2. The specification information SPEC may be stored in advance in the memory 22-2, or may be acquired by the memory 22-2 via a network. The memory 22-2 may be built into the processor 21-2. There may also be multiple memories 22-2.

[0025] The PLC 30 receives signal data from the monitored devices via the control network and transmits the received signal data to the SCADA server 20-1 and the SCADA server 20-2. The PLC 30 also receives control commands from the SCADA server 20-1 or the SCADA server 20-2 and transmits them to the monitored devices via the control network.

[0026] The client 10 is a computer on which an operator monitors the system and performs necessary operations. The client 10 is equipped with a display. A web browser runs on the display based on signal data sent from the SCADA server 20-1 or SCADA server 20-2. The operator operates the web browser as necessary. When an operation is performed by the operator, operation data indicating the content of the operation is sent from the client 10 to the SCADA server to which the client 10 is currently connected. The SCADA server 20-1 or SCADA server 20-2 sends a control command based on the operation data to the PLC 30 to control the equipment to be monitored based on the operation data.

[0027] The SCADA servers of the SCADA system 2 are made redundant using an active / active system. In other words, both the SCADA server 20-1 and the SCADA server 20-2 are in operation while the SCADA system 2 is in operation. The client 10 is connected to either the SCADA server 20-1 or the SCADA server 20-2, and the server to which the client 10 is connected is switched depending on the operating status of each SCADA server.

[0028] 2. SCADA Server Functions The functions of the SCADA server 20-1 and SCADA server 20-2 shown in Figure 1 will be explained using Figure 2. Since the SCADA server 20-1 and SCADA server 20-2 have the same functions, hereinafter, when there is no need to distinguish between them, the symbol 20 will be used, and only when it is necessary to distinguish between them will the symbols 20-1 and 20-2 be used.

[0029] 2, the SCADA server 20 includes a communication driver 23 and a client management unit 26. The communication driver 23 and the client management unit 26 are part of the functions of the SCADA server 20 that are realized when instructions INST are read from memory and executed by a processor.

[0030] The communication driver 23 communicates with all PLCs 30 using, for example, UDP multicast. To this end, if the communication is UDP multicast, the communication driver 23 includes a UDP multicast receiving module 24. The communication driver 23 determines the communication status with each PLC 30 based on the results of receiving signal data from each PLC 30. Specifically, each PLC 30 transmits a UDP multicast packet to the communication driver 23 at regular intervals (e.g., every 200 ms). The communication driver 23 monitors for timeouts and determines that communication has been disconnected if no packets are received within a certain period of time (e.g., 1000 ms). When a UDP multicast packet is received, the communication driver 23 changes the communication status with the corresponding PLC 30 to "connected." If a timeout occurs, the communication driver 23 changes the communication status with the corresponding PLC 30 to "disconnected." The communication driver 23 generates a connection list 25 based on the connection / disconnection determination results for each PLC 30 and notifies the client management unit 26 of the connection list 25.

[0031] The client management unit 26 acquires the connection list 25 from the communication driver 23 and generates server status data 27 indicating the status of the SCADA server 20 based on the connection list 25. The server status data 27 includes the PLC connection status and connection priority. The client management unit 26 distributes the server status data 27 to all clients 10.

[0032] 3. Server status data configuration The server status data 27 distributed from the SCADA server 20 to each client 10 is information for each client 10 to determine whether to connect to the SCADA server 20-1 or the SCADA server 20-2. The PLC connection status and connection priority included in the server status data 27 indicate the conditions for the client 10 to select a server.

[0033] 3 is a table for explaining the conditions for selecting a server by the client 10. As shown in this table, condition 1 and condition 2 are set as conditions for the client 10 to select a server.

[0034] Condition 1 is the PLC connection status, that is, the connection status of the SCADA server 20 to the PLC 30. Condition 1 is a condition set based on the policy that the client 10 should connect to the server with the best operating status. According to condition 1, the server with the best operating status is the server that can connect to all PLCs 30 in the SCADA system 2. In the server status data, if the communication status with all PLCs 30 is "connected," the "PLC connection status" is set to "1," and if there is even one PLC 30 in the "disconnected" status, the "PLC connection status" is set to "0."

[0035] Condition 2 is the connection priority, that is, the priority of connection of the SCADA server 20 to the target client 10. Condition 2 is a condition set based on the policy that the client 10 should connect to the server so that the load on the two SCADA servers 20 is constant. According to condition 2, the server to which each client 10 will preferentially connect is determined so that the load on the two SCADA servers 20 is constant, and the connection destination server is selected based on the result. In the server status data, the "connection priority" of the server (primary server) that will preferentially connect to the target client 10 is set to "1," and the "connection priority" of the server (secondary server) that will be subordinately connected to the target client 10 is set to "0."

[0036] Condition 1 is a condition that takes precedence over condition 2. First, a server whose "PLC connection status" is "1" in condition 1 is selected, and the clients 10 are connected to the selected server according to their "connection priority." When the "PLC connection status" of both the SCADA server 20-1 and the SCADA server 20-2 is "1," the clients 10 whose "connection priority" of the SCADA server 20-1 is "1" are connected to the SCADA server 20-1, and the clients 10 whose "connection priority" of the SCADA server 20-2 is "1" are connected to the SCADA server 20-2. When the "PLC connection status" of the SCADA server 20-1 is "1" and the "PLC connection status" of the SCADA server 20-2 is "0," all the clients 10 are connected to the SCADA server 20-1. When the "PLC connection status" of the SCADA server 20-1 is "0" and the "PLC connection status" of the SCADA server 20-2 is "1," all the clients 10 are connected to the SCADA server 20-2.

[0037] FIG. 4 is a table showing the configuration of the server status data 27. The server status data 27 is 32-bit information configured as shown in this table. The 0th bit is set to the value of the connection priority, and the 1st bit is set to the value of the PLC connection status. Bits 2 to 31 are unused and are always set to "0".

[0038] Each client 10 checks the server status data 27 distributed from the two SCADA servers 20 bit by bit according to priority and connects to the server with the larger value. As a result, if both redundant SCADA servers 20 are connected to all PLCs 30, the clients 10 connect to both SCADA servers 20 to distribute the load. However, if communication between even one of the SCADA servers 20-1 and PLCs 30 is cut off, for example, all clients 10 will connect to SCADA server 20-2.

[0039] 4. Connection Priority Settings The connection priority included in the server status data 27 can be set arbitrarily by the user. An engineering tool is used to set the connection priority. Figure 5 shows an example of a screen for setting the connection priority displayed in the engineering tool.

[0040] In the engineering tool, the static priority of the connection between each of the server_1 (SCADA server 20-1) and the server_2 (SCADA server 20-2) can be specified for each client. In the example shown in FIG. 5, the static priority of the connection between each of the client_1, client_5, client_7, and client_9 is specified as follows: server _1 is specified as a static preferred connection destination. Also, for client_2, client_3, and client_6, server For client_4 and client_8, for which no static preferred connection destination is specified, the connection destination server is determined according to the dynamic priority described later.

[0041] The engineering tool generates a static priority list based on the specifications saved on the setting screen, and the static priority list is provided to the SCADA server 20.

[0042] 5. SCADA System Operation The operation of the SCADA system 2 according to this embodiment will be described with reference to Fig. 6. As described above, the static priority list 41 created by the engineering tool 40 is provided to both the SCADA server 20-1 and the SCADA server 20-2.

[0043] The client management unit 26-1 of the SCADA server 20-1 generates server status data 27-1 based on the static priority list 41. For a client 10 for which a static priority is specified in the static priority list 41, the client management unit 26-1 determines the "connection priority" of the SCADA server 20-1 by referring to the static priority specified in the static priority list. On the other hand, for a client 10 for which a static priority is not specified in the static priority list 41, the client management unit 26-1 determines the "connection priority" of the SCADA server 20-1 by referring to the dynamic priority list 42.

[0044] The client management unit 26-2 of the SCADA server 20-2 generates server status data 27-2 based on the static priority list 41. For a client 10 for which a static priority is specified in the static priority list 41, the client management unit 26-2 determines the "connection priority" of the SCADA server 20-2 by referring to the static priority specified in the static priority list. On the other hand, for a client 10 for which a static priority is not specified in the static priority list 41, the client management unit 26-2 determines the "connection priority" of the SCADA server 20-2 by referring to the dynamic priority list 42.

[0045] The dynamic priority list 42 used by the two SCADA servers 20 is a list that specifies the connection destination server for a client 10 for which no static priority is specified. For a client 10 for which no static priority is specified, the connection destination server is dynamically determined so as to balance the load between the two SCADA servers 20. As a method for dynamically determining the connection destination server, for example, the method disclosed in Japanese Patent No. 6888739 can be used.

[0046] The SCADA server 20-1 distributes server status data 27-1 to all clients 10. The SCADA server 20-2 also distributes server status data 27-2 to all clients 10.

[0047] The client 10 that has received the server status data 27-1 and the server status data 27-2 compares the two server status data 27 bit by bit. First, the client 10 compares the first bits of the two server status data 27. Because the value of the first bit is determined by the connection status between the SCADA server 20 and the PLC 30, the first bits of the server status data 27-1 distributed from the SCADA server 20-1 to each client 10 all have the same value. Similarly, the first bits of the server status data 27-2 distributed from the SCADA server 20-2 to each client 10 all have the same value. If the value of the first bit in either of the server status data 27 is "0," the client 10 selects the SCADA server 20 that provides server status data 27 with a first bit of "1." For example, if the first bit of the server status data 27-1 is "1" and the first bit of the server status data 27-2 is "0," the client 10 selects the SCADA server 20-1. As a result, all the clients 10 are connected to the SCADA server 20-1.

[0048] If the first bit of the server status data 27-1 is "1" and the first bit of the server status data 27-2 is also "1," the client 10 then compares the zeroth bits of the two server status data 27. Because the server status data 27 is created based on the static priority list 41 and dynamic priority list 42 common to the SCADA servers 20, the zeroth bit of one of the two server status data 27 is always "1." The client 10 selects a SCADA server 20 that provides server status data 27 with the zeroth bit set to "1." For example, if the zeroth bit of the server status data 27-1 is "1" and the zeroth bit of the server status data 27-2 is "0," the client 10 selects the SCADA server 20-1. On the other hand, if the zeroth bit of the server status data 27-1 is "0" and the zeroth bit of the server status data 27-2 is "1," the client 10 selects the SCADA server 20-2.

[0049] According to the SCADA system 2 operating as described above, only the SCADA servers 20 connected to all the PLCs 30 are connected to the client 10. Then, for the client 10 for which a static priority is specified in the static priority list 41, the connection destination server is determined according to the static priority. On the other hand, for the client 10 for which a static priority is not specified, the connection destination server is determined according to the dynamic priority list 42 so that the load is balanced among the SCADA servers 20. In this way, according to the SCADA system 2, the SCADA servers 20 to which the client 10 is connected are determined according to the dynamic priority list 42 while achieving redundancy and load balancing of the SCADA servers 20. 0 can be specified statically.

[0050] 6. Other embodiments The SCADA servers that make up the SCADA system may be triple or more redundant. That is, three or more SCADA servers may be provided in the SCADA system. In this case, static priorities for connections with clients can also be specified among the three or more SCADA servers. [Explanation of symbols]

[0051] 2. SCADA system 10 clients 20, 20-1, 20-2 SCADA Server 21, 21-1, 21-2 processors 22, 22-1, 22-2 Memory 23 Communication Driver 24 UDP Multicast Reception Module 25 Connection List 26, 26-1, 26-2 Client Management Department 27, 27-1, 27-2 Server status data 30 PLC 40 Engineering Tools 41 Static Priority List 42 Dynamic Priority List

Claims

1. a plurality of SCADA servers connectable to a plurality of programmable logic controllers; a plurality of clients connectable to each of the plurality of SCADA servers; an engineering tool for generating a static priority list specifying a static priority of a connection between at least one of the plurality of clients and each of the plurality of SCADA servers; the plurality of clients are connected to a SCADA server among the plurality of SCADA servers to which all of the plurality of programmable logic controllers are connected; For a client for which a static priority is specified in the static priority list, a SCADA server to which the client is to connect is determined in accordance with the static priority specified in the static priority list; For a client for which a static priority is not specified in the static priority list, a SCADA server to which the client is connected is determined so that the load is balanced among the SCADA servers to which all of the plurality of programmable logic controllers are connected. A SCADA system characterized by:

2. 2. The SCADA system according to claim 1, Each of the plurality of SCADA servers monitoring a connection state with each of the plurality of programmable logic controllers; connecting to at least one of the plurality of clients when connected to all of the plurality of programmable logic controllers; When connecting to at least one of the plurality of clients, For a client for which a static priority is specified in the static priority list, refer to the static priority specified in the static priority list to determine whether or not the client is a client to be connected; For a client for which a static priority is not specified in the static priority list, the load between the SCADA servers to which all of the plurality of programmable logic controllers are connected is referenced to determine whether the client is a client to be connected. A SCADA system characterized by: