Scada web hmi system

CN117616740BActive Publication Date: 2026-08-21TMEIC CORP (100 00)
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202280045115.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-21
Publication Date
2026-08-21
Estimated Expiration
2042-06-21

AI Technical Summary

Benefits of technology

[0032] According to the first technical solution, by updating the signal data stored in the other of the first and second signal data buffers during the period when the sending thread reads signal data from one of the first and second signal data buffers and sends it to the HMI client device, the signal data sent to the HMI client device can be thinned. Therefore, even under high processing load on the SCADA server device, delays in display updates on the HMI client device's screen or shutdowns of the SCADA server device can be prevented.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117616740B_ABST
    Figure CN117616740B_ABST
Patent Text Reader

Abstract

The present application provides a SCADA web HMI system capable of preventing delay of display update on a screen of an HMI client device or stop of a server device even in a case where a processing load on the server device is high. The SCADA server device is provided with a communication driver and a client management section connected 1:1 with a plurality of HMI client devices 1. The client management section is provided with a reception thread that receives signal data from the communication driver, first and second signal data buffers that can save the signal data received by the reception thread in correspondence with a signal data identifier for each data type, and a transmission thread that reads out the signal data saved in the first or second signal data buffer and transmits it to the HMI client device. The client management section is configured to overwrite the signal data saved in the other one of the first and second signal data buffers during a period in which the transmission thread reads out the signal data from one of the first and second signal data buffers and transmits it to the HMI client device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to SCADA web HMI systems, and particularly to techniques for reducing the processing load in large-scale systems. Background Technology

[0002] SCADA (Supervisory Control and Data Acquisition) is well-known as a mechanism for monitoring and controlling social infrastructure systems. These social infrastructure systems include steel rolling systems, power transmission and transformation systems, water supply and drainage systems, building management systems, and road systems, among others.

[0003] SCADA is a type of industrial control system that uses computers for system monitoring, process control, and data collection. SCADA requires real-time responsiveness to match the system's processing capabilities.

[0004] SCADA typically consists of the following subsystems.

[0005] (1) HMI (Human Machine Interface)

[0006] HMI is a mechanism that displays data from the monitored device to the operator, enabling the operator to monitor and control the monitored device.

[0007] (2) Monitoring and Control System

[0008] The monitoring and control system consists of a Programmable Logic Controller (PLC). It collects data from the monitored devices and sends control commands to them.

[0009] (3) Remote Input Output (RIO)

[0010] The remote input / output device connects to the sensor installed in the monitored device, converts the sensor signal into digital data, and sends the digital data to the monitoring and control system.

[0011] (4) Communication infrastructure

[0012] Communication infrastructure connects monitoring and control systems with remote input / output devices.

[0013] As an example of a SCADA HMI subsystem, Patent Document 1 discloses a system comprising an HMI client device and an HMI server device. In conventional SCADA systems like those in Patent Document 1, the HMI server device transmits data received from the PLC (input / output signals, alarm signals) to the HMI client device, and also stores all collected data as historical data. Input / output signals are signals related to the monitored devices (constituting the field devices in an industrial plant), including actuator control signals and sensor detection signals.

[0014] Existing technical documents

[0015] Patent documents

[0016] Patent Document 1: Japanese Patent Application Publication No. 2017-27211

[0017] Patent Document 2: Japanese Patent Application Publication No. 11-120104 Summary of the Invention

[0018] The problem that the invention aims to solve

[0019] The challenges in developing the HMI subsystem, one of the aforementioned subsystems, will be explained.

[0020] In large-scale systems, HMI subsystems often connect hundreds of thousands of signals to the PLC. Traditional HMI server devices, responsible for both monitoring and control as well as data collection, require high-performance processors and large-capacity memory to process these numerous signals in real time. Therefore, there is a need for a low-cost HMI subsystem suitable for large-scale system applications.

[0021] To reduce the cost of the SCADA HMI subsystem, the inventors of this application have developed a browser-based SCADA HMI subsystem. This allows a web application operating in a web browser to display the HMI screen.

[0022] One of the benefits of implementing HMI screens in a web browser is the ability to easily retrieve data from different web servers by switching URLs (including port numbers).

[0023] In other words, data for the history display can be obtained from the Online Data Gathering (ODG) that collects and stores all PLC data, while data for the monitoring screens requiring real-time monitoring can be obtained from the HMI server device. By separating and delegating history-related functions, which are part of the SCADA functionality, to the Online Data Gathering, the HMI server device can be customized for real-time monitoring. To handle numerous signals with a low-cost HMI server device, it is desirable to reduce the processing load on input / output signals (including actuator control signals and sensor detection signals) and alarm signals.

[0024] Furthermore, in large-scale SCADA web-based HMI systems, it's envisioned that many client machines are connected to a single server device. In this case, real-time data processing within the HMI server device may no longer be possible. For example, if 128 HMI client devices are connected to a single server device, each displaying the same screen, the HMI server device would need to receive and transmit the signal data contained in the screen to all HMI client devices. In a browser-based SCADA HMI subsystem, the screen on the HMI client devices is displayed by a web browser, using a point-to-point connection such as WebSocket, and signal data is transmitted from the HMI server device to the HMI client devices. That is, multicast transmission cannot be used in the transmission from the HMI server device to the HMI client devices. Therefore, the HMI server device would need to send 128 times the amount of signal data received to the HMI client devices.

[0025] During periods when the amount of data sent to the HMI client device per unit time is small, the HMI server device may be able to send all signal data without delay. However, if the amount of data sent per unit time increases, the amount of data sent may exceed the processing capacity of the HMI server device. Under such a high processing load on the HMI server device, signal data that cannot be fully sent to the HMI client device remains in the buffer within the HMI server device, increasing the data buffer size. As a result, problems such as display update delays on the HMI client device's screen or the HMI server device stopping due to insufficient memory free space occur. Furthermore, Patent Document 2 disclosed above discloses a technique for monitoring network load and sorting packets under high load conditions.

[0026] The present invention was made to solve the aforementioned problems, and its purpose is to provide a SCADA web-based HMI system that can prevent delays in display updates on HMI client devices or server device shutdowns even under high processing loads on server devices.

[0027] Methods used to solve problems

[0028] The first technical solution relates to a SCADA web-based HMI system. The SCADA web-based HMI system comprises multiple programmable logic controllers (PLCs), multiple HMI client devices, and one or two SCADA server devices connected via a computer network. When the SCADA server devices are configured in a redundant structure, there are two SCADA server devices. The PLCs periodically transmit block data containing a set of input / output signals related to the group of field devices constituting the industrial plant to the computer network; each HMI client device has a web browser display screen. The SCADA server device includes a communication driver and a client management unit that connects one-to-one with the multiple HMI client devices. The communication driver is configured to receive the block data transmitted from the PLCs periodically, decompose the received block data into signal data of each data type, attach signal data identifiers to the decomposed signal data, and transmit it to the client management unit according to each data type. The client management unit includes: a receiving thread for receiving signal data transmitted from a communication driver; first and second signal data buffers for storing the signal data received by the receiving thread according to data type and signal data identifier; and a transmitting thread for reading the signal data stored in the first or second signal data buffer and transmitting it to the HMI client device corresponding to the read signal data. The client management unit is configured such that, while the transmitting thread is reading signal data from one of the first and second signal data buffers and transmitting it to the HMI client device, it overwrites the signal data stored in the other of the first and second signal data buffers.

[0029] In addition to the features of the first technical solution, the second technical solution also has the following characteristics: The receiving thread is configured to use a signal data identifier as an index to save the signal data into the first and second signal data buffers.

[0030] The second technical solution, in addition to the features of the first technical solution, also has the following characteristics: The first and second signal data buffers and indexes correspondingly have update flags that become ON when the stored signal data is updated. The receiving thread generates an index list storing the indexes with the update flag set to ON. The sending thread is configured to, referring to the index list, send the signal data of the indexes with the update flag set to ON to the HMI client device.

[0031] Invention Effects

[0032] According to the first technical solution, by updating the signal data stored in the other of the first and second signal data buffers during the period when the sending thread reads signal data from one of the first and second signal data buffers and sends it to the HMI client device, the signal data sent to the HMI client device can be thinned. Therefore, even under high processing load on the SCADA server device, delays in display updates on the HMI client device's screen or shutdowns of the SCADA server device can be prevented.

[0033] According to the second technical solution, it is possible to save or read signal data to the first and second signal data buffers with less computation.

[0034] According to the third technical solution, by sending only the signal data of the updated area to the HMI client device, the amount of data sent to the HMI client device can be reduced, and as much signal data as possible can be sent to the HMI client device. Attached Figure Description

[0035] Figure 1 This is a diagram illustrating a structural example of the SCADA web-based HMI system according to Embodiment 1.

[0036] Figure 2 This is a block diagram illustrating the general functions of a SCADA server device.

[0037] Figure 3 This is a schematic diagram used to illustrate signal data buffering.

[0038] Figure 4 is a schematic diagram illustrating signal processing in the client management department.

[0039] Figure 5 This is a schematic diagram illustrating signal processing in the client management unit under conditions of low load on the signal data sending thread.

[0040] Figure 6 This is a schematic diagram (1) used to illustrate the thinning process performed when the load on the signal data sending thread is high.

[0041] Figure 7 This is a schematic diagram (2) used to illustrate the thinning process performed when the load on the signal data sending thread is high.

[0042] Figure 8 It is a diagram used to illustrate the update flag set for the signal data buffer and the update area for the signal data.

[0043] Figure 9 This is a diagram used to illustrate the list representing the updated region.

[0044] Figure 10 It is a flowchart used to illustrate the reception process performed by the signal data receiving thread.

[0045] Figure 11 It is a flowchart used to illustrate the transmission process performed by the signal data sending thread.

[0046] Figure 12 This is a schematic diagram showing the list of HMI client devices that should send signal data.

[0047] Figure 13 This is a block diagram illustrating an example of the hardware structure of SCADA server equipment and HMI client equipment. Detailed Implementation

[0048] Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Furthermore, common elements in the various figures are given the same reference numerals, and repeated descriptions are omitted.

[0049] Implementation method 1.

[0050] 1-1. SCADA Web-based HMI System

[0051] Figure 1 This diagram illustrates an example of the structure of the SCADA web-based HMI system 1 according to Embodiment 1. The SCADA web-based HMI system 1 includes a PLC 2, a SCADA server device 3, and an HMI client device 4 interconnected via a computer network 5. The computer network 5 is, for example, an Ethernet (registered trademark).

[0052] PLC2 is connected to the group of field devices constituting the industrial plant via a control network (not shown in the diagram). The field devices include actuators and sensors. PLC2 sends packets containing block data to computer network 5 via multicast or broadcast at regular intervals. The transmission interval can be set, for example, in the range of a few milliseconds to several hundred milliseconds. Block data is a collection of PLC signals. A single block of data contains tens to hundreds of PLC signals. Types of PLC signals include input / output signals (including actuator control signals and sensor detection signals) and alarm signals. Block data contains at least one of the sets of input / output signals and alarm signals. Block data is periodically sent to SCADA server device 3 regardless of whether the PLC signal value has changed compared to the previous value.

[0053] HMI client device 4 has the following features. Figure 13The processor 401, memory 402, and monitor 403 are shown. The configuration is such that the processor 401 executes a program stored in the memory 402, and the processor 401 executes a web browser 40 that displays a screen 41 equipped with a display unit 42. The monitor 403 displays the screen of the web browser 40.

[0054] The web browser 40 can retrieve various information about the HTML document related to screen 41 from the web server (not shown) specified by the URL. The web server is built into the SCADA server device 3. Screen 41 includes monitoring screens that require real-time monitoring.

[0055] When the web browser 40 is displaying a monitoring screen on screen 41, it changes the display state of the display component 42 based on input / output signals received from the SCADA server device 3. Changes in the display state may include, for example, changes in numerical values, characters, colors, or shapes. Furthermore, the web browser 40 changes the display state of the display component 42 configured on screen 41 based on alarm signals received from the SCADA server device 3.

[0056] 1-2. Functional Overview of SCADA Server Equipment

[0057] Figure 2 This is a block diagram illustrating the general functions of the SCADA server device 3 according to Embodiment 1. The SCADA server device 3 includes a communication driver 31 and a client management unit 32.

[0058] The communication driver 31 is configured to perform a receiving process 311 (receiving block data from the PLC2) and an unpacking process 312 (decomposing the received block data into signal data of each data type) at regular intervals. In this embodiment, the data types used are "bit" (data size 1 bit), "short" (data size 2 bytes), and "float" (data size 4 bytes), but other data types can also be used. Furthermore, the communication driver 31 is configured to perform packet processing 313 (attaching a corresponding signal data identifier to each signal data to generate a packet of each data type and sending the generated packet to the client management unit 32). That is, the data sent from the communication driver 31 to the client management unit 32 is a pair of signal data identifiers and signal data values.

[0059] Here, the signal data identifier corresponds to the string specified by the application designer and is unique for each data type. The data size of the signal data identifier is, for example, 23 bits. Therefore, the signal data identifier can represent approximately 8 million signal data for each data type, which is sufficient for a large-scale SCADA web-based HMI system 1. If it is bit-type data, since the signal data identifier is 23 bits and the data value is 1 bit, the data size of each signal is 24 bits (= 3 bytes). If it is floating-type data, since the signal data identifier is 23 bits and the data value is 4 bytes, an additional 1 bit of padding is added, making the data size of each signal 7 bytes. Alternatively, when generating a packet, only the signal data of the signal data identifier related to the currently displayed screen 41 on the web browser 40 can be extracted.

[0060] The client management unit 32 has a signal data receiving thread 321, a first signal data buffer 322a, a second signal data buffer 322b, and a signal data sending thread 323.

[0061] Signal data receiving thread 321 receives packets (signal data of each data type) from the communication driver 31. Signal data receiving thread 321 uses signal data identifiers as indexes for signal data buffers 322a and 322b. Details of signal data receiving thread 321 will be described later, but it saves the signal data to either the first signal data buffer 322a or the second signal data buffer 322b.

[0062] The first and second signal data buffers 322a and 322b have the same structure. Hereinafter, without distinguishing between the two signal data buffers 322a and 322b, we will describe them as signal data buffer 322.

[0063] Signal data buffer 322 such Figure 3 As shown, there are areas (arrays) for storing signal data according to data type. Signal data is stored in each storage area corresponding to an index. Implemented as an array of signal data types that allocate storage areas for each signal data, compared to implementing it as an associative array, it allows for saving or reading signal data to and from the signal data buffer 322 with less computation, thus reducing the load, which is advantageous. While memory usage is larger compared to using an associative array, even with 8 million signal data items, excluding text types, the memory usage is only about 24 MB, which is acceptable considering current computer specifications.

[0064] If the signal data sending thread 323 receives an instruction from the signal data receiving thread 321, it will read the signal data stored in the first signal data buffer 322a or the second signal data buffer 322b, and send the read signal data to the HMI client device 4 according to its data type. At this time, by only updating the area Ru (see reference [link to update area])... Figure 8 The signal data is sent to HMI client device 4, which can reduce the amount of data sent to HMI client device 4.

[0065] 1-3. Signal Data Processing in SCADA Server Equipment

[0066] As shown in Figure 4, if the signal data receiving thread 321 receives a packet (signal data) from the communication driver 31, it saves the received signal data into the first signal data buffer 322a. As mentioned above, since the data received from the communication driver 31 is a pair of signal data identifiers and signal data, the signal data identifier is used as an index to save the data value to the index position of the storage area (array) corresponding to the signal data type. If the data saving is complete, it checks whether the signal data sending thread 323 has completed the sending process.

[0067] As shown in Figure 4(a), whenever transmission processing is in progress, the signal data of the packets received in the next cycle are also saved to the first signal data buffer 322a. At this time, there is a possibility of data overwriting at the same index position. This means that when the amount of data sent to the HMI client device 4 exceeds the processing capacity of the SCADA server device 3, i.e., when the processing load on the SCADA server device 3 is high, signal data thinning processing is performed.

[0068] On the other hand, as shown in Figure 4(b), when the signal data transmission thread 323 has completed the transmission process, it is instructed to read the signal data stored in the first signal data buffer 322a and transmit it, and to save the signal data of the packet received in the next cycle into the second signal data buffer 322b. If the saving is complete, it is checked whether the signal data transmission thread 323 has completed the transmission process of the data in the first signal data buffer 322a. If it is in the process of transmission, the signal data of the packet received in the next cycle is also saved into the second signal data buffer 322b. At this time, the above-mentioned thinning process is performed by overwriting the data at the same index position. Then, if the transmission process of the data in the first signal data buffer 322a is completed, it is instructed to read the signal data stored in the second signal data buffer 322b and transmit it. This process of receiving, saving, reading, and transmitting is repeated.

[0069] Reference Figure 5 Taking the case where the signal data of each of the signal data identifiers A, B, and C contained in the packet increments by one every 100 milliseconds as an example, the processing of the client management unit 32 will be explained. Since the signal data identifiers A, B, and C are used as indices, the indices are also A, B, and C. Furthermore, it is assumed that the signal data sending thread 323 can send the values ​​of the signal data with indices A, B, and C stored in the first or second signal data buffers 322a and 322b to all HMI client devices 4 within 100 milliseconds. Therefore, Figure 5 In the example shown, the processing load for SCADA server device 3 is low.

[0070] If, at time T, the signal data receiving thread 321 receives the first packet from the communication driver 31, it saves each signal data (value = 1) contained in the packet to indices A, B, and C of the first signal data buffer 322a. At time T+100 milliseconds, the signal data sending thread 323 reads the signal data (value = 1) from the first signal data buffer 322a and sends it to the HMI client device 4. During transmission, if the signal data receiving thread 321 receives the second packet from the communication driver 31, it saves each signal data (value = 2) to indices A, B, and C of the second signal data buffer 322b.

[0071] At time T+200 milliseconds, signal data sending thread 323 reads signal data (value = 2) from the second signal data buffer 322b and sends it to the HMI client device 4. During transmission, if signal data receiving thread 321 receives the third packet from the communication driver 31, it saves each signal data (value = 3) to the positions A, B, and C of the first signal data buffer 322a. Because the client management unit 32 repeatedly performs the above processing, it does not perform the aforementioned thinning process.

[0072] Reference Figure 6 and Figure 7 This describes the handling of the client management unit 32 under high processing load conditions for SCADA server device 3. Figure 6 and Figure 7 In the example shown, the signal data sending thread 323 takes 200 milliseconds to send the values ​​of each signal data stored in the first or second signal data buffers 322a, 322b at indices A, B, C, D, E, F to all HMI client devices 4. Figure 5 The examples shown are different. The following are examples in contrast to... Figure 5 The differences shown in the examples will be explained in detail.

[0073] If the signal data receiving thread 321 receives the third packet at time T+200 milliseconds, then because the signal data sending thread 323 has not completed its sending process, the signal data (value = 2) stored at indices A to F in the second signal data buffer 322b will not be sent to the HMI client device 4, and the signal data (value = 3) will be overwritten at indices A to F in the second signal data buffer 322b.

[0074] Similarly, at time T+400 milliseconds, since the signal data sending thread 323 has not completed its sending process, the signal data (value = 4) stored at index A to F in the first signal data buffer 322a is not sent to the HMI client device 4, and the signal data (value = 5) is overwritten at index A to F in the first signal data buffer 322a.

[0075] Furthermore, at time T+600 milliseconds, since the signal data sending thread 323 has not completed its sending process, the signal data (value = 6) stored at indexes A to F in the second signal data buffer 322b is not sent to the HMI client device 4, and the signal data (value = 7) is overwritten at indexes A to F in the second signal data buffer 322b.

[0076] In this way, by automatically performing thinning processing to overwrite the signal data of the first or second signal data buffer 322a, 322b based on the performance of the SCADA server device 3 and the amount of data sent to the HMI client device 4, the amount of data sent to the HMI client device 4 is adjusted.

[0077] To reduce the amount of data sent to HMI client device 4, it is also possible to... Figure 8 As shown, the signal data buffer 322 is configured such that it has an update bit that is ON when the value of the stored signal data is updated (OFF when it is not updated). The update bit is a 1-bit update flag. In this case, the signal data transmitting thread 323 could also be configured to extract the signal data with the update bit ON from the entire signal data buffer 322, but this is less efficient. Therefore, the signal data receiving thread 321 can be configured to generate, as shown... Figure 9As shown, an index list Li is stored for the indices with the update flag set to ON, and the generated index list Li is saved in the signal data buffer 322. The index list Li is a list representing the update region Ru. The index list Li can be generated for each data type. Furthermore, the signal data sending thread 323 can be configured to send only the signal data of the indices with the update flag set to ON, i.e., the signal data of the update region Ru, to the HMI client device 4, referring to the index list Li. As a result, the signal data to be sent to the HMI client device 4 can be extracted efficiently, and the amount of data sent to the HMI client device 4 can be reduced efficiently.

[0078] In this way, by setting the update area Ru, it is possible to transmit signal data at a high efficiency to the HMI client device 4. Additionally, Figure 8 and Figure 9 The example shown is bit-type signal data, but by applying update flags and index list Li to signal data of other data types, more efficient signal data transmission can be achieved.

[0079] Figure 10 This is a flowchart illustrating an example of a receive processing routine executed by the signal data receiving thread 321. Additionally, it is possible to execute only in... Figure 10 The exclusive section enclosed by dashed lines and the section discussed later. Figure 11 The dotted line represents one of the exclusive intervals. That is, during the execution of the exclusive interval of the signal data receiving thread 321, the execution of the exclusive interval of the signal data sending thread 323 is made to wait, and during the execution of the exclusive interval of the signal data sending thread 323, the execution of the exclusive interval of the signal data receiving thread 321 is made to wait.

[0080] exist Figure 10 In the illustrated routine, the system waits for signal data to be received from the communication driver 31 (step S11). The communication driver 31 sends packets containing signal data of the same data type at regular intervals. If packet reception begins (step S12), the reception completion flag is set to OFF (step S13). Next, the signal data is saved to the current receive data buffer number (step S14). The current receive data buffer number is the number of the signal data buffer where signal data is being saved, which is the first or second signal data buffer 322a, 322b. In step S14, as described above, the signal data is saved by corresponding index according to its data type.

[0081] Next, determine the current received data buffer number and the number described below. Figure 11Check if the current transmit data buffer number in the illustrated routine is the same (step S15). In a different case, i.e., when the transmit operation by signal data transmit thread 323 has completed, set the receive completion flag to ON (step S16). Therefore, the signal data of the next received packet will be saved in a different signal data buffer than the current one. After step S16, return to step S11. On the other hand, in the same case, proceed to step S17.

[0082] In step S17, a semaphore V operation is performed. Then, the current receive data buffer number is updated (step S18). This notifies the semaphore data sending thread 323 that the data to be sent next is ready. After step S18, the process returns to step S11.

[0083] Figure 11 This is a flowchart of an example of the transmission processing routine executed by signal data transmission thread 323.

[0084] exist Figure 11 In the example shown, a semaphore P operation is performed (step S21). The execution of the semaphore P operation causes a wait until the data to be sent by the signal data receiving thread 321 is ready. After the operation resumes, the signal data stored in the current transmit data buffer number is sent to the HMI client device 4 (step S22). The current transmit data buffer number is the number of the signal data buffer currently being read, which is either the first or second signal data buffer 322a or 322b. In step S22, refer to... Figure 9 The index list Li shown only sends the signal data for the indexes with the update flag set to ON, i.e., the signal data for the update region Ru. This reduces the amount of data sent to the HMI client device 4, thus enabling the HMI client device 4 to quickly complete the transmission of its signal data.

[0085] Here, refer to Figure 12 The signal data sending thread 323 sends signal data for the updated region Ru according to the client list Lc, which specifies the relationship between the index of the signal data buffer 322 corresponding to the signal data and the HMI client device 4 that should send the signal data. The client list Lc can be created using a first mapping table Mp1 that specifies the relationship between the index and the screen identifier Gn (n = 1, 2, ...) of the screen 41 using the signal data, and a second mapping table Mp2 that specifies the relationship between the HMI client devices 4 (4A, 4B, 4C) and the screen identifier Gn.

[0086] After step S22, the current data transmission buffer number is updated (step S23). Next, the current data transmission buffer number is compared with... Figure 10Check if the current receive data buffer number in the illustrated routine is the same (step S24). If not, return to step S21. If the same, proceed to step S25.

[0087] In step S25, it is determined whether the reception completion flag is ON. If the reception completion flag is OFF, the process returns to step S21. On the other hand, if the reception completion flag is ON, the semaphore V operation is performed (step S26). Next, the current received data buffer number is updated (step S27). Then, the reception completion flag is set to OFF (step S28), and the process returns to step S21.

[0088] 1-4. Hardware structure example of SCADA server device 3 and HMI client device 4

[0089] Figure 13 This is a block diagram illustrating an example of the hardware structure of a SCADA server device and an HMI client device. The various processes of the aforementioned SCADA server device 3 are implemented by processing circuitry. The processing circuitry is constructed by connecting a processor 301, a memory 302, and a network interface 303. The processor 301 executes various programs stored in the memory 302 to implement the various functions of the SCADA server device 3. The memory 302 includes a main storage device and an auxiliary storage device. Furthermore, the memory 302 includes first and second signal data buffers 322a and 322b, which serve as storage areas for temporarily storing signal data.

[0090] The various processes of the HMI client device 4 described above are implemented by a processing circuit. The processing circuit is composed of a processor 401, a memory 402, at least one monitor 403, a network interface 404, and an input interface 405 connected together. The processor 401 executes various programs stored in the memory 402 to implement the various functions of the HMI client device 4. The memory 402 includes a main storage device and an auxiliary storage device. Multiple monitors 403 can also be provided. The input interface 405 is an input device such as a keyboard, mouse, or touch panel.

[0091] 1-5. Effects

[0092] As explained above, according to this embodiment, by overwriting (updating) the signal data stored in the other of the first and second signal data buffers 322a and 322b during the period when the signal data transmission thread 323 reads signal data from one of the first and second signal data buffers 322a and 322b and sends it to the HMI client device 4, the signal data sent to the HMI client device 4 can be thinned out. This avoids signal data that has not been fully sent to the HMI client device 4 remaining in the signal data buffer 322 of the SCADA server device 3, or the SCADA server device 3's memory free capacity decreasing. Therefore, even under high processing loads on the SCADA server device 3, delays in display updates on the screen 41 of the HMI client device 4 and the shutdown of the SCADA server device 3 can be prevented.

[0093] In the thinning process of this embodiment, by overwriting, the latest signal data is not thinned. Furthermore, the amount of thinned signal data is minimized, allowing as much signal data as possible to be sent to the HMI client device 4. Therefore, the thinning process can be performed with maximum utilization of the system performance of the SCADA web-based HMI system 1.

[0094] The embodiments of the present invention have been described above, but the present invention is not limited to the above-described embodiments and can be implemented in various modifications without departing from the spirit of the present invention. When the numbers, quantities, quantities, ranges, etc., of each element are mentioned in the above embodiments, the present invention is not limited to those numbers unless specifically stated or clearly determined in principle. Furthermore, the structures, etc., described in the above embodiments are not necessarily essential to the present invention unless specifically stated or clearly determined in principle.

[0095] Label Explanation

[0096] 1…SCADA web-based HMI system

[0097] 2…Programmable Logic Controller (PLC)

[0098] 3…SCADA server equipment

[0099] 31…Communication Driver

[0100] 32…Client Management Department

[0101] 321… Signal Data Reception Thread

[0102] 322a…First signal data buffer

[0103] 322b…Second signal data buffer

[0104] 323… Signal data transmission thread

[0105] 4…HMI Client Devices

[0106] 40… Web browser

[0107] 41…Screen

[0108] 5… Computer Networks

[0109] Li… Index List

[0110] Ru…Updated Area

Claims

1. A SCADA web-based HMI system, comprising multiple programmable logic controllers (PLCs), multiple HMI client devices, and one SCADA server device connected via a computer network, characterized in that, The PLC will send block data containing a set of input and output signals related to the group of field devices that make up the industrial plant to the computer network at regular intervals. The aforementioned HMI client devices are each equipped to display a web browser screen; The aforementioned SCADA server equipment includes a communication driver and a client management unit that connects one-to-one with the aforementioned multiple HMI client devices; The aforementioned communication driver is configured to receive the block data sent from the aforementioned PLC at a certain period, decompose the received block data into signal data of each data type, attach a signal data identifier to the decomposed signal data, and send it to the aforementioned client management department according to each data type. The aforementioned client management department possesses: The receiving thread receives signal data sent from the aforementioned communication driver; The first and second signal data buffers are capable of storing signal data received by the aforementioned receiving thread according to each data type and corresponding to the aforementioned signal data identifier; and The sending thread reads the signal data stored in the first and second signal data buffers mentioned above and sends it to the HMI client device corresponding to the read signal data. The aforementioned client management unit is configured to overwrite the signal data stored in the other of the aforementioned first and second signal data buffers during the period when the aforementioned sending thread reads signal data from one of the aforementioned first and second signal data buffers and sends it to the aforementioned HMI client device.

2. The SCADA web-based HMI system as described in claim 1, characterized in that, The receiving thread is configured to use the signal data identifier as an index to save the signal data into the first and second signal data buffers.

3. The SCADA web-based HMI system as described in claim 2, characterized in that, The first and second signal data caches mentioned above have an update flag that becomes ON when the stored signal data is updated, corresponding to the index mentioned above. The aforementioned receiving thread generates an index list that stores the aforementioned indexes whose update flag is ON; The aforementioned sending thread is configured to send signal data of the indexes whose update flag is ON to the aforementioned HMI client device, referring to the aforementioned index list.

Citation Information

Patent Citations

  • Method and system for reducing load in case of network abnormality

    JP1999120104A

  • Plant control system

    JP2017027211A

  • Method and systems for synchronization of process control servers

    CN102124450A

  • SCADA system picture caching system

    CN107995176A