Scada system

The SCADA system achieves static server allocation and dynamic load balancing by using a static priority list for certain clients and dynamic load distribution for others, ensuring redundancy and load balancing in active/active configurations.

WO2025154179A1PCT designated stage expired Publication Date: 2025-07-24TMEIC CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2024/001008
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-16
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Existing SCADA systems with active/active redundancy methods struggle to statically specify the server to which clients connect while maintaining load balancing, leading to potential simultaneous unavailability of servers when clients are unevenly distributed.

Method used

A SCADA system with a static priority list that specifies the connection destination for certain clients and dynamic load balancing for others, ensuring redundancy and even load distribution among servers.

Benefits of technology

Enables static server allocation for prioritized clients and dynamic load balancing for non-prioritized clients, maintaining system redundancy and load balancing simultaneously.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024001008_24072025_PF_FP_ABST
    Figure JP2024001008_24072025_PF_FP_ABST
Patent Text Reader

Abstract

A SCADA system according to one embodiment of the present disclosure comprises: a plurality of clients that can be connected to each of a plurality of SCADA servers; and an engineering tool that generates a static priority list specifying the static priority of connection with each SCADA server for at least one of the plurality of clients. Each client is connected to a SCADA server to which all of a plurality of programmable logic controllers are connected. For the clients whose static priority is specified in the static priority list, the SCADA server of the connection destination is determined in accordance with the static priority specified in the list. For the clients whose static priority is not specified in the static priority list, the SCADA server of the connection destination is determined such that loads are equalized among the SCADA servers to which all the programmable logic controllers are connected.
Need to check novelty before this filing date? Find Prior Art

Description

SCADA system

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

[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 sewerage 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 a human-machine interface (HMI), 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 in 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 method for ensuring stable operation of a SCADA system is to introduce a redundant configuration. One such configuration is the SCADA server. Known methods for SCADA server redundancy 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 operate in coordination.

[0005] One key point in implementing the active / active system 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 the 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.

[0006] Patent No. 6888739

[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 preferentially connects 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.

[0009] In order to achieve the above object, a SCADA system according to a 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, static priorities for connection with each 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 is connected 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 is connected 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 a 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 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 the client is to be connected.

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

[0015] 1 is a diagram illustrating a configuration of a SCADA system according to an embodiment of the present disclosure; FIG. 2 is a diagram illustrating functions of a SCADA server according to an embodiment of the present disclosure; FIG. 3 is a table for explaining server selection conditions by a client; FIG. 4 is a table illustrating a configuration of server status data; FIG. 5 is a diagram illustrating an example of a setting screen for connection priority displayed on an engineering tool; and FIG. 6 is a diagram for explaining the operation of the SCADA system according to the present embodiment.

[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 Fig. 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 the 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 composed of a plurality of instructions INST that can be executed by the processor 21-1. The program composed of the instructions INST may be constructed as a web application that runs on a web browser. The program composed of the instructions INST may be acquired 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 instructions INST. The program is composed of the same instructions INST as the program stored in the memory 22-1 of the SCADA server 20-1. The program composed of the instructions INST may be constructed as a web application that runs on a web browser. The program composed of the instructions INST 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 among 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. Furthermore, there may 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 transmitted 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 transmitted 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 transmits a control command based on the operation data to the PLC 30 in order to control the equipment to be monitored based on the operation data.

[0027] The SCADA servers of the SCADA system 2 are made redundant by an active / active method. That is, 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 according to the operating status of each SCADA server.

[0028] 2. Functions of the SCADA Server The functions of the SCADA server 20-1 and SCADA server 20-2 shown in Fig. 1 will be explained using Fig. 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 reference numeral 20 will be used, and only when it is necessary to distinguish between them will the reference numerals 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, for example, via UDP multicast. To this end, if the communication is via 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 timeouts and determines that communication has been disconnected if no packets are received for 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 result 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. Configuration of Server Status Data 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 SCADA server 20-1 or 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, conditions 1 and 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 be connected 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 is preferentially connected 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 is preferentially connected to the target client 10 is set to "1," and the "connection priority" of the server (secondary server) that is 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 SCADA server 20-1 and SCADA server 20-2 is "1," clients 10 whose "connection priority" of SCADA server 20-1 is "1" are connected to SCADA server 20-1, and clients 10 whose "connection priority" of SCADA server 20-2 is "1" are connected to SCADA server 20-2. When the "PLC connection status" of SCADA server 20-1 is "1" and the "PLC connection status" of SCADA server 20-2 is "0," all clients 10 are connected to SCADA server 20-1. When the "PLC connection state" of the SCADA server 20-1 is "0" and the "PLC connection state" of the SCADA server 20-2 is "1", all clients 10 are connected to the SCADA server 20-2.

[0037] 4 is a table showing the configuration of the server status data 27. The server status data 27 is 32-bit information having the configuration shown in this table. The 0th bit is set to a connection priority value, and the 1st bit is set to a PLC connection status value. 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 the PLC 30 is interrupted, for example, all clients 10 will connect to SCADA server 20-2.

[0039] 4. Setting of connection priority 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] The engineering tool allows the static priority of the connection between server_1 (SCADA server 20-1) and server_2 (SCADA server 20-2) to be specified for each client. In the example shown in Fig. 5, client_1 is specified as the static preferred connection destination for client_1, client_5, client_7, and client_9. Furthermore, client_2 is specified as the static preferred connection destination for client_2, client_3, and client_6. 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 below.

[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. Operation of SCADA System 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 clients 10 for which static priorities are 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 priorities specified in the static priority list. On the other hand, for clients 10 for which static priorities are 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 a 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, a connection destination server is dynamically determined so as to balance the load between the two SCADA servers 20. As a method for dynamically determining a 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, all first bits of the server status data 27-1 distributed from the SCADA server 20-1 to each client 10 have the same value. Similarly, all first bits of the server status data 27-2 distributed from the SCADA server 20-2 to each client 10 also 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 PLCs 30 are connected to the clients 10. Then, for clients 10 for which static priorities are specified in the static priority list 41, the connection destination server is determined according to the static priorities. On the other hand, for clients 10 for which static priorities are 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, it is possible to statically specify the SCADA servers 2 to which the clients 10 connect, while achieving redundancy and load distribution of the SCADA servers 20.

[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.

[0051] 2 SCADA system 10 Client 20, 20-1, 20-2 SCADA server 21, 21-1, 21-2 Processor 22, 22-1, 22-2 Memory 23 Communication driver 24 UDP multicast communication module 25 Connection list 26, 26-1, 26-2 Client management unit 27, 27-1, 27-2 Server status data 30 PLC 40 Engineering tool 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, and an engineering tool that generates a static priority list specifying a static priority of connection between each of the plurality of SCADA servers and at least one of the plurality of clients. The plurality of clients are connected to a SCADA server 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, the destination SCADA server is determined according to the static priority specified in the static priority list. For a client for which no static priority is specified in the static priority list, the destination SCADA server is determined so that the load is evenly distributed among the SCADA servers to which all of the plurality of programmable logic controllers are connected. A SCADA system characterized by the above.

2. In the SCADA system according to claim 1, each of the plurality of SCADA servers monitors the connection state with each of the plurality of programmable logic controllers, and when connected to all of the plurality of programmable logic controllers, connects to at least one of the plurality of clients. 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, it is determined whether it is the client to be connected by referring to the static priority specified in the static priority list. For a client for which no static priority is specified in the static priority list, it is determined whether it is the client to be connected by referring to the load among the SCADA servers to which all of the plurality of programmable logic controllers are connected. A SCADA system characterized by the above.

Citation Information

Patent Citations

  • Monitoring control system for electric power system

    JP2012231636A

  • Scada web HMI system

    WO2023248339A1