SCADA system

By introducing a static priority list and dynamic load balancing mechanism into the SCADA system, the problem of client connection to the server changing with the startup order is solved, and the stability and efficient load distribution of redundant servers are achieved.

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

Patent Information

Application Number
CN202480008182.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-16
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

In existing SCADA systems, the servers connected by clients change with the startup order, resulting in reduced efficiency in the use of redundant servers and an inability to statically specify the server to be connected first.

Method used

Adopting static priority list and dynamic load balancing mechanism, the static connection priority between client and SCADA server is set through engineering tools, and the connection destination is dynamically selected based on load balancing.

Benefits of technology

It achieves server redundancy and load distribution while statically specifying the server to which the client connects, improving system stability and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120660338A_ABST
    Figure CN120660338A_ABST
Patent Text Reader

Abstract

An SCADA system according to one embodiment of the present disclosure is provided with: 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 in which static priorities of connections with each SCADA server are specified for at least one of the plurality of clients. And each client is connected with an SCADA (supervisory control and data acquisition) server connected with all the programmable logic controllers. For a client whose static priority is specified in the static priority list, the SCADA server which is a connection destination is determined on the basis of the static priority specified in the list. For clients whose static priorities are not specified in the static priority list, the SCADA server to which connection is to be performed is determined such that the loads between the SCADA servers to which all programmable logic controllers are connected are equal.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a SCADA system having a redundant structure. Background Art

[0002] Patent Document 1 discloses technology related to the SCADA system. SCADA (Supervisory Control And Data Acquisition) is well 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, and the like.

[0003] SCADA is a type of industrial control system that performs computer-based system monitoring and process control. Generally speaking, SCADA consists of multiple subsystems such as HMI (Human Machine Interface), monitoring and control system, remote monitoring and control device (RTU: Remote Terminal Unit), and communication infrastructure. The HMI subsystem presents the operator with the data of the target process, allowing the operator to monitor and control the process. The monitoring and control system is composed of PLC (Programmable Logic Controller) and other devices, which collect data on the process and send commands to the process. The remote monitoring and control device (RIO: Remote Input Output) is connected to the sensors installed in the process, converts the sensor signals into digital data, and sends the digital data to the monitoring and control system. The communication infrastructure connects the monitoring and control system and the remote monitoring and control device.

[0004] One method for ensuring stable operation of a SCADA system is to implement a redundant structure. One example of a redundant structure is a SCADA server. Known SCADA server redundancy methods include the active / passive method and the active / active method. The active / active method involves operating two redundant servers simultaneously, requiring the two redundant servers to coordinate their operations.

[0005] To achieve an active / active system, the allocation of clients from the two redundant servers is crucial. 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 an allocation order that takes load distribution into account. The allocation of clients from the two redundant servers is determined based on this allocation order that takes load distribution into account within the server connection priority list. Consequently, by connecting each server to one of the redundant servers according to the server connection priority list, the number of clients connected to each server becomes equal, achieving load distribution.

[0006] Prior art literature

[0007] Patent Literature

[0008] Patent Document 1: Japanese Patent No. 6888739 Summary of the Invention

[0009] Technical problem to be solved by the invention

[0010] In the SCADA system disclosed in Patent Document 1, the connection priority is determined by the order in which the client connects to the server. Therefore, the server to which the client is connected changes according to the order in which the client is started. Since the redundant servers are virtualized, the client's behavior is guaranteed to be the same regardless of which server it is connected to. However, depending on the application, there is also a desire to fix the server that each client has priority to connect to. For example, when two clients are configured in each monitoring area, if one of the two clients in the same area is connected to one of the two redundant servers and the other client is connected to the other server, the probability that the two clients cannot be used at the same time becomes lower.

[0011] The present disclosure has been made in view of the above-mentioned problems, and aims to provide a SCADA system that can statically specify a server to which a client is connected while achieving server redundancy and load distribution.

[0012] Technical solutions to technical problems

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

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

[0015] Each client connects to the SCADA server to which all programmable logic controllers are connected. However, for clients that have a static priority specified in the static priority list, the SCADA server to which they are connected is determined based on the static priority specified in the static priority list. On the other hand, for clients that have no static priority specified in the static priority list, the SCADA server to which they are connected is determined so that the load is evenly distributed across all SCADA servers to which multiple programmable logic controllers are connected.

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

[0017] Each SCADA server may also monitor the connection status with each programmable logic controller and, when connected to all programmable logic controllers, connect to at least one client. Furthermore, when the SCADA server is connected to at least one client, for clients assigned a priority in a static priority list, the SCADA server may refer to the priorities assigned in the static priority list to determine whether the client is a client to be connected. On the other hand, for clients not assigned a priority in the static priority list, the SCADA server may refer to the load between all SCADA servers connected to multiple programmable logic controllers to determine whether the client is a client to be connected.

[0018] Effects of the Invention

[0019] According to one aspect of the present disclosure, a SCADA system connects only to the SCADA server connected to all programmable logic controllers (PLCs). Furthermore, for clients assigned a static priority, a connection destination is determined based on the static priority. For clients that do not assign a static priority, a connection destination is determined to evenly distribute the load across the SCADA servers. Therefore, the SCADA system according to one aspect of the present disclosure can achieve server redundancy and load distribution, while statically specifying the server to which the client connects. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 It is a diagram showing the configuration of a SCADA system according to an embodiment of the present disclosure.

[0021] Figure 2 : is a diagram showing the functions of the SCADA server according to an embodiment of the present disclosure.

[0022] Figure 3 This table describes the client's selection criteria for a server.

[0023] Figure 4 This is a table showing the structure of server status data.

[0024] Figure 5 This is a diagram showing an example of a connection priority setting screen displayed by an engineering tool.

[0025] Figure 6 It is a diagram for explaining the operation of the SCADA system according to this embodiment. DETAILED DESCRIPTION

[0026] Hereinafter, the embodiment of the present disclosure will be described with reference to the accompanying drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals, and the repeated description of the parts will be appropriately simplified or omitted.

[0027] 1. Composition of SCADA system

[0028] Figure 1 This figure shows an example configuration of a SCADA system 2 according to this embodiment. The SCADA system 2 has a redundant structure in which SCADA servers are duplicated. The SCADA system 2 includes a first SCADA server 20-1 (hereinafter referred to as the SCADA server 20-1) and a second SCADA server 20-2 (hereinafter referred to as the SCADA server 20-2) that form a pair. The SCADA servers 20-1 and 20-2 are mutually equivalent in the SCADA system 2.

[0029] The SCADA system 2 is a client-server system that connects dozens of programmable logic controllers (PLCs) 30 and hundreds of client computers 10 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 dualized. The network includes a first network and a second network. The SCADA server 20-1, SCADA server 20-2, each client computer 10, and each PLC 30 are connected to both the first network and the second network.

[0030] 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, an FPGA, or other processing units in addition to the CPU. There may also be multiple processors 21-1.

[0031] 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 can also be constructed as a web application that runs on a web browser. The program composed of the instructions INST can also be obtained using a computer-readable non-transitory storage medium.

[0032] The memory 22-1 also stores specification information SPEC. The specification information SPEC includes a static priority list described below. The specification information SPEC may be pre-stored in the memory 22-1 or retrieved from the memory 22-1 via a network. The memory 22-1 may also be built into the processor 21-1. Furthermore, there may be multiple memories 22-1.

[0033] 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 or other processing units such as an FPGA in addition to the CPU. There may also be multiple processors 21-2.

[0034] The memory 22-2 stores a program composed of a plurality of instructions INST that can be executed by the processor 21-2. This 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 can also be constructed as a web application that runs on a web browser. The program composed of the instructions INST can also be obtained using a computer-readable non-transitory storage medium.

[0035] Memory 22-2 also stores specification information SPEC. The specification information SPEC includes a static priority list. At least the static priority list within the specification information SPEC is shared between the specification information SPEC stored in memory 22-1 and the specification information SPEC stored in memory 22-2. The specification information SPEC may be pre-stored in memory 22-2 or retrieved from memory 22-2 via a network. The memory 22-2 may also be built into the processor 21-2. Furthermore, multiple memories 22-2 may be provided.

[0036] The PLC 30 receives signal data from the monitored device via the control network and sends the received signal data to the SCADA server 20-1 or the SCADA server 20-2. In addition, the PLC 30 receives control commands from the SCADA server 20-1 or the SCADA server 20-2 and sends them to the monitored device via the control network.

[0037] Client 10 is a computer used by an operator to monitor the system and perform necessary operations. Client 10 includes a display. A web browser operates on the display based on signal data transmitted from SCADA server 20-1 or SCADA server 20-2. The operator operates the web browser as needed. As the operator performs an operation, operation data indicating the details of each operation is transmitted from client 10 to the SCADA server to which client 10 is currently connected. To control the monitored device based on the operation data, SCADA server 20-1 or SCADA server 20-2 transmits control commands based on the operation data to PLC 30.

[0038] The SCADA servers of the SCADA system 2 are redundant using an active / active system. Specifically, during operation of the SCADA system 2, both the SCADA server 20-1 and the SCADA server 20-2 work together. The client 10 connects to either the SCADA server 20-1 or the SCADA server 20-2, switching the connection destination based on the operating status of each SCADA server.

[0039] 2. Functions of SCADA Server

[0040] use Figure 2 illustrate Figure 1 Functions of the SCADA server 20-1 and the SCADA server 20-2 shown. The SCADA server 20-1 and the SCADA server 20-2 have the same functions, so the reference numeral 20 is used below when they are not to be distinguished, and the reference numerals 20-1 and 20-2 are used only when they need to be distinguished.

[0041] like Figure 2 As shown, 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 implemented by reading an instruction INST from a memory and executing it with a processor.

[0042] The communication driver 23 communicates with all PLCs 30 based on, for example, UDP multicast. Therefore, if the communication is UDP multicast, for example, the communication driver 23 has a UDP multicast receiving module 24. The communication driver 23 determines the communication status with the communication driver 23 for each PLC 30 based on the reception result of the signal data from each PLC 30. Specifically, a UDP multicast packet is sent from each PLC 30 to the communication driver 23 in a certain period (for example, a 200ms period). The communication driver 23 performs timeout monitoring. If no packet is received within a certain time (for example, 1000ms), it is determined that the communication is disconnected. When a UDP multicast packet is received, the communication driver 23 changes the communication status with the target PLC 30 to "connected". When a timeout occurs, the communication driver 23 changes the communication status with the target PLC 30 to "disconnected". The communication driver 23 generates a connection list 25 based on the connection / disconnection judgment result of each PLC 30 and notifies the client management unit 26 of the connection list 25.

[0043] The client management unit 26 obtains 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.

[0044] 3. Composition of server status data

[0045] The server status data 27 distributed from the SCADA server 20 to each client 10 is information used to determine which of the SCADA servers 20-1 and 20-2 each client 10 should connect to. 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.

[0046] Figure 3 This is a table for explaining the server selection conditions of the client 10. As shown in this table, conditions 1 and 2 are set as conditions when the client 10 selects a server.

[0047] Condition 1 is the PLC connection status, that is, the connection status of the SCADA server 20 to the PLC 30. Condition 1 is set so that the client 10 should connect to the server with better operating conditions. According to Condition 1, the server that can connect to all PLCs 30 in the SCADA system 2 is considered to be in good operating conditions. In the server status data, if the communication status with all PLCs 30 is "connected", the "PLC connection status" is "1". If there is only one PLC 30 in the "disconnected" state, the "PLC connection status" is "0".

[0048] Condition 2 is the connection priority, that is, the connection priority of the SCADA server 20 with respect to the target client 10. Condition 2 sets the policy that the client 10 should connect to the server so that the load on both SCADA servers 20 is constant. Based on Condition 2, a server to which priority is determined for each client 10 so that the load on both SCADA servers 20 is constant, and a connection destination server is selected based on the result. In the server status data, the server to which the target client 10 has priority connection (primary server) has a "connection priority" of "1," while the server to which the target client 10 has secondary connection (secondary server) has a "connection priority" of "0."

[0049] Condition 1 takes precedence over Condition 2. First, a server whose "PLC connection status" is "1" is selected in Condition 1, and clients 10 are connected to this selected server according to the "connection priority." If the "PLC connection status" of both SCADA server 20-1 and SCADA server 20-2 is "1," clients 10 whose "connection priority" is "1" on SCADA server 20-1 are connected to SCADA server 20-1, and clients 10 whose "connection priority" is "1" on SCADA server 20-2 are connected to SCADA server 20-2. If 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. If the "PLC connection status" of SCADA server 20-1 is "0" and the "PLC connection status" of SCADA server 20-2 is "1," all clients 10 are connected to SCADA server 20-2.

[0050] Figure 4 This table shows the structure of server status data 27. Server status data 27 is 32 bits of information with the structure shown in this table. The connection priority value is set to bit 0, and the PLC connection status value is set to bit 1. Bits 2 to 31 are unused and are always "0."

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

[0052] 4. Setting connection priority

[0053] The user can arbitrarily set the connection priority included in the server status data 27. An engineering tool is used to set the connection priority. Figure 5 This shows an example of the connection priority setting screen displayed by the engineering tool.

[0054] In the engineering tool, it is possible to specify the static priority of the connection between Server_1 (SCADA server 20-1) and Server_2 (SCADA server 20-2) for each client. Figure 5In the example shown, for Client_1, Client_5, Client_7, and Client_9, Client_1 is designated as the static priority connection destination. Furthermore, for Client_2, Client_3, and Client_6, Client_2 is designated as the static priority connection destination. For Client_4 and Client_8, for which no static priority connection destination has been designated, the connection destination server is determined based on the dynamic priority described below.

[0055] The engineering tool generates a static priority list based on the designated contents stored in the setting screen, and provides the static priority list to the SCADA server 20 .

[0056] 5. Operation of SCADA system

[0057] use Figure 6 The operation of the SCADA system 2 of this embodiment will be described. 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.

[0058] 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 clients 10 that have a static priority assigned 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 assigned in the static priority list. On the other hand, for clients 10 that have no static priority assigned 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.

[0059] 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 that have a static priority assigned 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 assigned in the static priority list. On the other hand, for clients 10 that have no static priority assigned 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.

[0060] The dynamic priority list 42 used by the two SCADA servers 20 specifies the connection destination servers for the client 10 that has not been assigned a static priority. For the client 10 that has not been assigned a static priority, the connection destination server is dynamically determined so that the load is evenly distributed between the two SCADA servers 20. For example, the method disclosed in Japanese Patent No. 6888739 can be used as a method for dynamically determining the connection destination server.

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

[0062] Upon receiving server status data 27-1 and server status data 27-2, the client 10 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. Since the value of the first bit is determined by the connection status between the SCADA server 20 and the PLC 30, the first bit 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 bit 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 first bit value of either server status data 27 is "0," the client 10 selects the SCADA server 20 that provided the server status data 27 whose first bit is "1." For example, if the first bit of server status data 27-1 is "1" and the first bit of server status data 27-2 is "0," the client 10 selects SCADA server 20-1. Consequently, all clients 10 are connected to SCADA server 20-1.

[0063] When the first bit of the server status data 27-1 is "1" and the first bit of the server status data 27-2 is "1", the client 10 then compares the 0th bits of the two server status data 27. The server status data 27 is created based on the static priority list 41 and the dynamic priority list 42 shared by the SCADA servers 20. Therefore, the 0th bit of either of the two server status data 27 is always "1". The client 10 selects the SCADA server 20 that provides the server status data 27 with the 0th bit being "1". For example, when the 0th bit of the server status data 27-1 is "1" and the 0th bit of the server status data 27-2 is "0", the client 10 selects the SCADA server 20-1. On the other hand, when the 0th bit of the server status data 27-1 is "0" and the 0th bit of the server status data 27-2 is "1", the client 10 selects the SCADA server 20-2.

[0064] According to the SCADA system 2 operating as described above, only the SCADA servers 20 connected to all PLCs 30 are connected to the client 10. For the client 10 that has a static priority specified in the static priority list 41, the connection destination server is determined based on the static priority. On the other hand, for the client 10 that has not specified a static priority, the connection destination server is determined based on the dynamic priority list 42, thereby balancing the load between the SCADA servers 20. In this way, the SCADA system 2 can achieve redundancy and load distribution of the SCADA servers 20 while statically specifying the SCADA server 2 to which the client 10 is connected.

[0065] 6. Other Implementation Methods

[0066] The SCADA servers constituting the SCADA system may also be tripled or more redundant. That is, three or more SCADA servers may be mutually deployed in the SCADA system. In this case, static priorities for connections to clients may also be specified among the three or more SCADA servers.

[0067] Description of Reference Numerals

[0068] 2SCADA system

[0069] 10 Client

[0070] 20, 20-1, 20-2 SCADA servers

[0071] 21, 21-1, 21-2 processors

[0072] 22, 22-1, 22-2 memory

[0073] 23 Communication Driver

[0074] 24 UDP multicast communication module

[0075] 25 Connection List

[0076] 26, 26-1, 26-2 Client Management Department

[0077] 27, 27-1, 27-2 Server Status Data

[0078] 30PLC

[0079] 40 Engineering Tools

[0080] 41 Static Priority List

[0081] 42 Dynamic Priority List

Claims

1. A SCADA system, characterized in that: have: Multiple SCADA servers, capable of connecting to multiple programmable logic controllers; a plurality of clients, capable of connecting to the plurality of SCADA servers respectively; and an engineering tool that generates a static priority list specifying, for at least one of the plurality of clients, a static priority for connections to 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 the plurality of programmable logic controllers are connected, For a client that has specified a static priority in the static priority list, a SCADA server to which the connection destination is determined according to 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 be connected is determined so that loads are evenly distributed among the SCADA servers connected to all of the plurality of programmable logic controllers.

2. The SCADA system according to claim 1, characterized in that The multiple SCADA servers respectively execute: monitoring the connection status of each of the plurality of programmable logic controllers; and The step of connecting to at least one of the plurality of clients while all of the plurality of programmable logic controllers are connected, In case of connection with at least one of the plurality of clients, For a client with a static priority specified in the static priority list, determine whether it is a client to be connected by referring to 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, it is determined whether the client should be connected by referring to the load between the SCADA servers connected to all the programmable logic controllers.