WO2023248339A1 - Scadaウェブhmiシステム - Google Patents

Scadaウェブhmiシステム Download PDF

Info

Publication number
WO2023248339A1
WO2023248339A1 PCT/JP2022/024703 JP2022024703W WO2023248339A1 WO 2023248339 A1 WO2023248339 A1 WO 2023248339A1 JP 2022024703 W JP2022024703 W JP 2022024703W WO 2023248339 A1 WO2023248339 A1 WO 2023248339A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal data
hmi
data
scada
thread
Prior art date
Application number
PCT/JP2022/024703
Other languages
English (en)
French (fr)
Inventor
享治 橋詰
章 野島
伸夫 清水
Original Assignee
東芝三菱電機産業システム株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 東芝三菱電機産業システム株式会社 filed Critical 東芝三菱電機産業システム株式会社
Priority to JP2023523304A priority Critical patent/JP7444335B1/ja
Priority to PCT/JP2022/024703 priority patent/WO2023248339A1/ja
Priority to CN202280045115.5A priority patent/CN117616740A/zh
Priority to TW112101048A priority patent/TWI834470B/zh
Publication of WO2023248339A1 publication Critical patent/WO2023248339A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom

Definitions

  • the present invention relates to a SCADA web HMI system, and particularly to a technique for reducing processing load in a large-scale system.
  • SCADA Supervisory Control and Data Acquisition
  • Social infrastructure systems include steel rolling systems, power transmission and substation systems, water and sewage treatment systems, building management systems, and road systems.
  • SCADA is a type of industrial control system that uses computers to monitor systems, control processes, and collect data. SCADA requires immediate response (real-time performance) that matches the processing performance of the system.
  • SCADA generally consists of the following subsystems.
  • HMI Human Machine Interface
  • the HMI is a mechanism that presents data on monitored devices to an operator and allows the operator to monitor and control the monitored devices.
  • the supervisory control system includes a programmable logic controller (PLC) and the like.
  • PLC programmable logic controller
  • the remote input/output device connects to a sensor installed on the monitored device, converts the sensor signal into digital data, and sends the digital data to the monitoring control system.
  • the communication infrastructure connects the monitoring control system and remote input/output devices.
  • Patent Document 1 discloses a system including an HMI client machine and an HMI server machine.
  • an HMI server machine transmits data (input/output signals, alarm signals) received from a PLC to an HMI client machine, and also accumulates all collected data as historical data.
  • the input/output signal is a signal related to a device to be monitored (a group of field devices constituting an industrial plant), and includes an actuator control signal and a sensor detection signal.
  • the HMI subsystem may connect a large number of signals, hundreds of thousands of points or more, to the PLC.
  • Conventional HMI server machines that perform both supervisory control and data collection require a high-performance processor and large-capacity memory in order to process a large number of signals in real time. Therefore, it is desired to be able to realize an HMI subsystem that can be applied to large-scale systems at low cost.
  • the inventor of the present application has developed a browser-based SCADA HMI subsystem.
  • the HMI screen can be realized as a web application running on a web browser.
  • One of the advantages of implementing an HMI screen on a web browser is that data can be easily acquired from a different web server by switching the URL (including port number).
  • the history screen data should be obtained from an online data gathering device (ODG) that collects and accumulates all PLC data
  • ODG online data gathering device
  • the monitoring screen data which requires real-time performance, should be obtained from the HMI server machine. becomes possible.
  • the HMI server machine can specialize in real-time monitoring functions. In order to process a large number of signals with a low-cost HMI server machine, it is desirable to reduce the processing load of input/output signals (including actuator control signals and sensor detection signals) and alarm signals.
  • the HMI server machine cannot perform real-time data processing. For example, if 128 HMI client machines are connected to one server machine and each HMI client machine displays the same screen, the HMI server machine receives signal data included in the screen and all It is necessary to send it to the HMI client machine.
  • the screen on the HMI client machine is displayed by a web browser, and signal data is transferred from the HMI server machine to the HMI client machine using a point-to-point connection such as WebSocket. Sent. That is, multicast transmission cannot be used for transmission from the HMI server machine to the HMI client machine. Therefore, the HMI server machine needs to transmit signal data 128 times the amount of received data to the HMI client machine.
  • This proposal was made to solve the above-mentioned problems, and even when the processing load on the server machine is high, it prevents delays in updating the display on the screen of the HMI client machine and prevents the server machine from stopping.
  • the purpose is to provide a SCADA web HMI system that can
  • a SCADA web HMI system includes a plurality of programmable logic controllers (hereinafter referred to as PLCs), a plurality of HMI client machines, and one or two SCADA server machines, which are connected via a computer network. If the SCADA server machines have a redundant configuration, there will be two SCADA server machines.
  • the PLC transmits block data containing a set of input/output signals related to a group of field devices constituting an industrial plant to a computer network at regular intervals, and each HMI client machine is equipped with a screen that displays a web browser.
  • the SCADA server machine includes a communication driver and a client management section that is connected one-to-one to a plurality of HMI client machines.
  • the communication driver receives block data sent from the PLC at regular intervals, decomposes the received block data into signal data for each data type, adds a signal data identifier to the decomposed signal data, and divides the received block data into signal data for each data type.
  • the client management unit includes a reception thread that receives signal data transmitted from the communication driver, and first and second signal data that can store the signal data received by the reception thread in correspondence with signal data identifiers for each data type. It includes a buffer, and a transmission thread that reads signal data stored in the first or second signal data buffer and transmits the read signal data to the HMI client machine corresponding to the read signal data. While the transmission thread reads signal data from one of the first and second signal data buffers and transmits it to the HMI client machine, the signal data stored in the other of the first and second signal data buffers is overwritten. It is composed of
  • the second aspect further has the following characteristics.
  • the receive thread is configured to store signal data in the first and second signal data buffers using the data identifier as an index.
  • the third aspect further has the following characteristics in addition to the second aspect.
  • the first and second signal data buffers are configured to have update flags that are set to ON when the signal data to be stored is updated, in association with the index.
  • the receiving thread is configured to create an index list that stores indexes whose update flags are ON.
  • the index list is a list representing update areas.
  • the transmission thread is configured to refer to the index list and transmit the signal data of the index whose update flag is ON, that is, the signal data of the update area, to the HMI client machine.
  • the transmission thread reads signal data from one of the first and second signal data buffers and transmits it to the HMI client machine
  • the signal data is stored in the other of the first and second signal data buffers.
  • signal data can be stored in or read out from the first and second signal data buffers with a small amount of calculation.
  • the amount of data to be transmitted to the HMI client machine can be reduced, and as much signal data as possible can be transmitted to the HMI client machine. can be sent to.
  • FIG. 1 is a diagram for explaining a configuration example of a SCADA web HMI system according to Embodiment 1.
  • FIG. FIG. 2 is a block diagram illustrating an overview of functions possessed by a SCADA server machine.
  • FIG. 3 is a schematic diagram for explaining a signal data buffer.
  • FIG. 3 is a schematic diagram for explaining signal processing in a client management unit.
  • FIG. 6 is a schematic diagram for explaining signal processing in the client management unit when the load on the signal data transmission thread is low.
  • FIG. 3 is a schematic diagram (part 1) for explaining thinning processing that is executed when the load on the signal data transmission thread is high;
  • FIG. 7 is a schematic diagram (part 2) for explaining thinning processing that is executed when the load on the signal data transmission thread is high;
  • FIG. 3 is a schematic diagram for explaining an update flag set in a signal data buffer and an update area of signal data.
  • FIG. 3 is a schematic diagram for explaining a list representing update areas.
  • 3 is a flowchart for explaining reception processing executed in a signal data reception thread.
  • 3 is a flowchart for explaining transmission processing executed in a signal data transmission thread.
  • FIG. 2 is a schematic diagram showing a client list showing HMI client machines to which signal data should be transmitted. It is a block diagram showing an example of the hardware configuration of a SCADA server machine and an HMI client machine.
  • FIG. 1 is a diagram for explaining a configuration example of a SCADA Web HMI system 1 according to the first embodiment.
  • the SCADA web HMI system 1 includes a PLC 2, a SCADA server machine 3, and an HMI client machine 4, which are interconnected via a computer network 5.
  • the computer network 5 is, for example, Ethernet (registered trademark).
  • the PLC 2 is connected to a group of field devices that constitute an industrial plant via a control network (not shown).
  • the field equipment group includes actuators and sensors.
  • the PLC 2 transmits a packet containing block data to the computer network 5 at regular intervals by multicast or broadcast. The transmission period may be set within a range of several msec to several hundred msec, for example.
  • Block data is a collection of PLC signals.
  • One block data includes 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.
  • the block data includes at least one of a set of input/output signals and a set of alarm signals.
  • the block data is periodically transmitted to the SCADA server machine 3 regardless of whether the value of the PLC signal has changed from the previous value.
  • the HMI client device 4 includes a processor 401, a memory 402, and a monitor 403 shown in FIG. 13, which will be described later.
  • the processor 401 executes the program stored in the memory 402
  • the processor 401 is configured to execute the web browser 40 that displays the screen 41 on which the display parts 42 are arranged.
  • the monitor 403 displays the screen of the web browser 40.
  • the web browser 40 can acquire various information of the HTML document regarding the screen 41 from a web server (not shown) specified by the URL.
  • the web server is built within the SCADA server machine 3.
  • the screen 41 includes a monitoring screen that requires real-time performance.
  • the web browser 40 changes the display state of the display parts 42 according to the input/output signal received from the SCADA server machine 3 when the screen 41 currently displayed on the web browser 40 is a monitoring screen. Changes in display state include, for example, changes in numbers, characters, colors, and shapes. Further, the web browser 40 changes the display state of the display parts 42 arranged on the screen 41 according to the alarm signal received from the SCADA server machine 3.
  • FIG. 2 is a block diagram illustrating an overview of functions possessed by the SCADA server machine 3 according to the first embodiment.
  • the SCADA server machine 3 includes a communication driver 31 and a client management section 32.
  • the communication driver 31 is configured to perform a reception process 311 that receives block data from the PLC 2 at regular intervals, and an unpack process 312 that decomposes the received block data into signal data for each data type.
  • a reception process 311 that receives block data from the PLC 2 at regular intervals
  • an unpack process 312 that decomposes the received block data into signal data for each data type.
  • bit (data size 1 bit) "short (data size 2 bytes)”
  • float data size 4 bytes
  • the communication driver 31 adds a signal data identifier corresponding to each signal data to generate a packet for each data type, and executes packet processing 313 to send the generated packet to the client management unit 32. It is composed of That is, the data sent from the communication driver 31 to the client management unit 32 is a pair of a signal data identifier and a value of the signal data.
  • the signal data identifier corresponds to a character string written by the application designer and is unique for each data type.
  • the data size of the signal data identifier is, for example, 23 bits.
  • the client management unit 32 has a signal data reception thread 321, a first signal data buffer 322a, a second signal data buffer 322b, and a signal data transmission thread 323.
  • the signal data reception thread 321 receives packets (signal data for each data type) received from the communication driver 31.
  • the signal data receiving thread 321 uses the signal data identifier as an index of the signal data buffers 322a and 322b.
  • the signal data reception thread 321 stores signal data in the first signal data buffer 322a or the second signal data buffer 322b, although details will be described later.
  • the first and second signal data buffers 322a and 322b have the same configuration.
  • the two signal data buffers 322a and 322b are not distinguished from each other, they may be referred to as the signal data buffer 322.
  • the signal data buffer 322 has an area (array) for storing signal data for each data type. In each storage area, signal data is stored in correspondence with the index.
  • the amount of memory used will be larger than when using an associative array, but even if there are 8 million pieces of signal data, the amount of memory used will be about 24 Mbytes, excluding the text type, so the current Considering the specifications of the computer, it can be said that the amount of memory used is not a problem.
  • the signal data transmission thread 323 Upon receiving the instruction from the signal data reception thread 321, the signal data transmission thread 323 reads the signal data stored in the first signal data buffer 322a or the second signal data buffer 322b, and converts the read signal data into a data type. It is sent to the HMI client machine 4 every time. At this time, the amount of data transmitted to the HMI client machine 4 can be reduced by transmitting only the signal data of the update area Ru (see FIG. 8), which will be described later, to the HMI client machine 4.
  • the signal data reception thread 321 upon receiving a packet (signal data) from the communication driver 31, stores the received signal data in the first signal data buffer 322a.
  • the data received from the communication driver 31 is a pair of a signal data identifier and signal data, so the signal data identifier is used as an index and is placed at the index position of the storage area (array) corresponding to the signal data type. Store data values.
  • the signal data transmission thread 323 checks whether the transmission process has been completed.
  • the signal data of the packet received in the next cycle is also stored in the first signal data buffer 322a. At this time, data may be overwritten at the same index position. This means that when the amount of data sent to the HMI client machine 4 exceeds the processing capacity of the SCADA server machine 3, that is, when the processing load on the SCADA server machine 3 is high, signal data thinning processing is performed. means.
  • the signal data transmission thread 323 if the signal data transmission thread 323 has completed the transmission process, the signal data transmission thread 323 reads out the signal data stored in the first signal data buffer 322a. , and the signal data of the packet received in the next cycle is stored in the second signal data buffer 322b. When the storage is completed, the signal data transmission thread 323 checks whether the data transmission process of the first signal data buffer 322a has been completed. If the transmission process is in progress, the signal data of the packet received in the next cycle is also stored in the second signal data buffer 322b. At this time, the above thinning process is performed by overwriting data at the same index position.
  • the signal data transmission thread 323 is instructed to read the signal data stored in the second signal data buffer 322b and perform the transmission process. Such reception, storage, readout, and transmission processing is repeated.
  • each signal data of signal data identifiers A, B, and C included in a packet is incremented by 1 every 100 msec, which is a constant period. do. Since the signal data identifiers A, B, and C are used as indexes, the indices are also A, B, and C. Further, the signal data transmission thread 323 can transmit the values of each signal data of index A, B, and C stored in the first or second signal data buffer 322a, 322b to all the HMI client machines 4 within 100 msec. shall be taken as a thing. Therefore, in the example shown in FIG. 5, the processing load on the SCADA server machine 3 is low.
  • the signal data transmission thread 323 sends each signal data of index A, B, C, D, E, F stored in the first or second signal data buffer 322a, 322b.
  • This example differs from the example shown in FIG. 5 in that it takes 200 msec to send the value to all HMI client machines 4.
  • differences from the example shown in FIG. 5 will be mainly explained.
  • thinning processing is automatically executed to overwrite the signal data in the first or second signal data buffers 322a, 322b. By doing so, the amount of data transmitted to the HMI client machine 4 is adjusted.
  • the signal data transmission thread 323 may be configured to extract signal data whose update bit is ON from the entire signal data buffer 322, but this is inefficient. Therefore, as shown in FIG. 9, the signal data receiving thread 321 is configured to generate an index list Li that stores indexes whose update flags are ON, and to store the generated index list Li in the signal data buffer 322. Can be done.
  • the index list Li is a list representing update areas Ru. An index list Li can be generated for each data type.
  • the signal data transmission thread 323 can be configured to refer to the index list Li and transmit only the signal data of the index whose update flag is ON, that is, the signal data of the update area Ru, to the HMI client device 4. can. According to this, the signal data to be transmitted to the HMI client machine 4 can be efficiently extracted, and as a result, the amount of data transmitted to the HMI client machine 4 can be efficiently reduced.
  • FIGS. 8 and 9 show examples of bit-type signal data, by applying the update flag and index list Li to signal data of other data types, even more efficient signal data can be obtained. Data transmission can be realized.
  • FIG. 10 is a flowchart illustrating an example of a reception processing routine executed by the signal data reception thread 321. Note that only one of the exclusive section shown surrounded by a broken line in FIG. 10 and the exclusive section shown by a broken line in FIG. 11, which will be described later, can be executed. That is, while the signal data reception thread 321 is executing an exclusive interval, the execution of the exclusive interval of the signal data transmission thread 323 is awaited, and while the signal data transmission thread 323 is executing an exclusive interval, the execution of the exclusive interval of the signal data reception thread 321 is delayed. will be waited for.
  • reception of signal data from the communication driver 31 is waited for (step S11).
  • the communication driver 31 transmits packets containing signal data of the same data type at regular intervals.
  • the reception completion flag is turned OFF (step S13).
  • the signal data is stored in the current reception data buffer number (step S14).
  • the current reception data buffer number is the number of the signal data buffer storing signal data, and is the first or second signal data buffer 322a, 322b.
  • signal data is stored in association with the index for each data type.
  • step S15 it is determined whether the current reception data buffer number and the current transmission data buffer number in the routine shown in FIG. 11, which will be described later, are the same (step S15). If they are different, that is, if the transmission by the signal data transmission thread 323 is completed, the reception completion flag is turned ON (step S16). As a result, the signal data of the next received packet is stored in a different signal data buffer than the current one. After step S16, the process returns to step S11. On the other hand, if they are the same, the process advances to step S17.
  • step S17 semaphore V operation is executed.
  • step S18 the current receive data buffer number is updated. This notifies the signal data transmission thread 323 that the next data to be transmitted is ready. After step S18 ends, the process returns to step S11.
  • FIG. 11 is a flowchart illustrating an example of a transmission processing routine executed by the signal data transmission thread 323.
  • a semaphore P operation is executed (step S21).
  • the signal data reception thread 321 waits until the preparation of the data to be transmitted is completed.
  • the signal data stored in the current transmission data buffer number is transmitted to the HMI client device 4 (step S22).
  • the current transmission data buffer number is the number of the signal data buffer from which signal data is being read, and is the first or second signal data buffer 322a, 322b.
  • the index list Li shown in FIG. 9 is referred to, and only the signal data of the index whose update flag is ON, that is, the signal data of the update area Ru, is transmitted. As a result, the amount of data to be transmitted to the HMI client device 4 can be reduced, so that the transmission of signal data from the HMI client device 4 can be completed quickly.
  • the signal data transmission thread 323 creates a client list Lc that defines the relationship between the index of the signal data buffer 322 corresponding to the signal data and the HMI client machine 4 to which the signal data is to be transmitted.
  • step S22 the current transmission data buffer number is updated (step S23).
  • step S24 it is determined whether the current transmission data buffer number and the current reception data buffer number in the routine shown in FIG. 10 are the same (step S24). If they are different, the process returns to step S21. If they are the same, the process advances to step S25.
  • 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 executed (step S26). Next, the current reception data buffer number is updated (step S27). Next, the reception completion flag is turned OFF (step S28), and the process returns to step S21.
  • FIG. 13 is a block diagram showing an example of the hardware configuration of the SCADA server machine and HMI client machine.
  • the processing circuit is configured by connecting a processor 301, a memory 302, and a network interface 303.
  • the processor 301 realizes each function of the SCADA server machine 3 by executing various programs stored in the memory 302.
  • Memory 302 includes a main storage device and an auxiliary storage device.
  • the memory 302 also includes first and second signal data buffers 322a and 322b, which are storage areas that can temporarily store signal data.
  • the processing circuit includes a processor 401, a memory 402, at least one monitor 403, a network interface 404, and an input interface 405 connected to each other.
  • the processor 401 realizes each function of the HMI client machine 4 by executing various programs stored in the memory 402.
  • Memory 402 includes a main storage device and an auxiliary storage device. A plurality of monitors 403 may be provided.
  • the input interface 405 is an input device such as a keyboard, mouse, or touch panel.
  • the signal data transmission thread 323 reads signal data from one of the first and second signal data buffers 322a and 322b and transmits it to the HMI client machine 4, By overwriting (updating) the signal data stored in the other of the first and second signal data buffers 322a and 322b, the signal data to be transmitted to the HMI client machine 4 can be thinned out. This prevents signal data that cannot be transmitted to the HMI client machine 4 from staying in the signal data buffer 322 of the SCADA server machine 3 or from reducing the free memory capacity of the SCADA server machine 3. Therefore, even when the processing load on the SCADA server machine 3 is high, a delay in updating the display on the screen 41 of the HMI client machine 4 and a stoppage of the SCADA server machine 3 can be prevented.
  • the latest signal data is not thinned out by overwriting. Furthermore, the amount of signal data to be thinned out can be reduced as much as possible, and as much signal data as possible can be transmitted to the HMI client machine 4. Therefore, the thinning process can be performed by making full use of the system performance of the SCADA web HMI system 1.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明は、サーバ機への処理負荷が高い場合でも、HMIクライアント機のスクリーン上での表示更新の遅延やサーバ機の停止を防止できるSCADAウェブHMIシステムを提供する。SCADAサーバ機は、通信ドライバと、HMIクライアント機に1対1で接続されるクライアント管理部を備える。クライアント管理部は、通信ドライバからの信号データを受信する受信スレッドと、受信スレッドで受信した信号データをデータ型ごとに信号データ識別子に対応させて格納可能な第1及び第2の信号データバッファと、第1または第2の信号データバッファに格納された信号データを読み出してHMIクライアント機に送信する送信スレッドを備える。送信スレッドが第1及び第2の信号データバッファの一方から信号データを読み出してHMIクライアント機に送信する間、第1及び第2の信号データバッファの他方に格納される信号データが上書きされる。

Description

SCADAウェブHMIシステム
 本発明は、SCADAウェブHMIシステムに関し、特に大規模システムにおける処理負荷を低減する技術に関する。
 SCADA(Supervisory Control And Data Acquisition)は、社会インフラシステムを監視制御する仕組みとして知られている。社会インフラシステムは、鉄鋼圧延システム、電力送変電システム、上下水道処理システム、ビル管理システム、道路システムなどである。
 SCADAは、産業制御システムの一種であり、コンピュータによるシステム監視とプロセス制御とデータ収集とを行う。SCADAでは、システムの処理性能に合わせた即応性(リアルタイム性)が必要である。
 SCADAは一般に次のようなサブシステムから構成される。
(1)HMI(Human Machine Interface)
 HMIは、監視対象装置のデータをオペレータに提示し、オペレータが監視対象装置を監視し制御できるようにする機構である。
(2)監視制御システム
 監視制御システムは、Programmable Logic Controller(PLC)などによって構成される。監視制御システムは、監視対象装置のデータを収集し、監視対象装置に対して制御コマンドを送る。
(3)遠方入出力装置(Remote Input Output:RIO)
 遠方入出力装置は、監視対象装置に設置されたセンサと接続し、センサの信号をデジタルのデータに変換し、そのデジタルデータを監視制御システムに送る。
(4)通信基盤
 通信基盤は、監視制御システムと遠方入出力装置を接続する。
 SCADA HMIサブシステムの一例として、特許文献1には、HMIクライアント機とHMIサーバ機とを備えるシステムが開示されている。特許文献1のような従来のSCADAでは、HMIサーバ機が、PLCから受信したデータ(入出力信号、アラーム信号)をHMIクライアント機へ送信し、また収集したすべてのデータを履歴データとして蓄積する。入出力信号は、監視対象装置(産業プラントを構成するフィールド機器群)に関する信号であり、アクチュエータ制御信号およびセンサ検出信号を含む。
日本特開2017-27211号公報 日本特開平11-120104号公報
 上述したサブシステムの1つであるHMIサブシステムの開発における課題について説明する。
 大規模システムでは、HMIサブシステムは、数十万点以上の多数の信号をPLCと結び付ける場合がある。監視制御とデータ収集の両方を担う従来のHMIサーバ機では、多数の信号をリアルタイムで処理するために、高性能なプロセッサおよび大容量のメモリが必要となる。そのため、大規模システムに適用可能なHMIサブシステムを低コストに実現できることが望まれている。
 SCADA HMIサブシステムの低コスト化を実現するため、本願発明者は、ブラウザベースのSCADA HMIサブシステムを開発するに至った。これにより、ウェブブラウザ上で動作するウェブアプリケーションとしてHMIスクリーンを実現することができる。
 ウェブブラウザ上でHMIスクリーンを実現するメリットの1つとして、URL(ポート番号含む)を切り替えることで、容易に異なるWebサーバからデータを取得できる点が挙げられる。
 すなわち、履歴スクリーンのデータは、全PLCデータを収集し蓄積するオンラインデータ収集機(ODG:Online Data Gathering)から取得し、リアルタイム性が要求される監視スクリーンのデータは、HMIサーバ機から取得することが可能となる。SCADA機能の一部である履歴に関する機能を分離し、オンラインデータ収集機に任せることで、HMIサーバ機は、リアルタイム監視機能に特化できる。低コストのHMIサーバ機で多数の信号を処理するために、入出力信号(アクチュエータ制御信号およびセンサ検出信号を含む)やアラーム信号の処理負荷を低減することが望まれる。
 ところで、大規模なSCADAウェブHMIシステムでは、1台のサーバ機に多数のクライアント機が接続することが想定される。この場合、HMIサーバ機でのリアルタイムなデータ処理が行えなくなる可能性がある。例えば、1台のサーバ機に128台のHMIクライアント機が接続され、各HMIクライアント機で同一のスクリーンを表示しているとすると、HMIサーバ機は、スクリーンに含まれる信号データを受信し、全てのHMIクライアント機に送信する必要がある。ブラウザベースのSCADA HMIサブシステムでは、HMIクライアント機上のスクリーンは、ウェブブラウザにより表示されており、例えば、WebSocketなどのPoint to Point接続を使用して、HMIサーバ機からHMIクライアント機に信号データが送信される。即ち、HMIサーバ機からHMIクライアント機への送信にマルチキャスト送信を利用することはできない。このため、HMIサーバ機は、受信したデータ量の128倍の信号データをHMIクライアント機に送信する必要がある。
 HMIクライアント機への単位時間当たりの送信データ量が少ない間は、HMIサーバ機は、全ての信号データを遅延なく送信することができるかもしれない。然し、単位時間あたりの送信データ量が多くなると、送信データ量がHMIサーバ機の処理能力を上回る可能性がある。このようにHMIサーバ機への処理負荷が高い場合、HMIクライアント機に送信しきれない信号データがHMIサーバ機内のバッファに滞留し、データバッファサイズが増加してしまう。その結果、HMIクライアント機のスクリーン上での表示更新が遅延するという問題や、HMIサーバ機のメモリ空き容量が少なくなり、HMIサーバ機が停止するという問題が発生する。なお、上記特許文献2には、ネットワーク上の負荷を監視し、負荷が高い場合に、パケットを選別する技術が開示されている。
 本提案は、上述のような課題を解決するためになされたもので、サーバ機への処理負荷が高い場合でも、HMIクライアント機のスクリーン上での表示更新の遅延やサーバ機の停止を防止することが可能なSCADAウェブHMIシステムを提供することを目的とする。
 第1の観点は、SCADAウェブHMIシステムに関連する。SCADAウェブHMIシステムは、コンピュータネットワークを介して接続する、複数のプログラマブルロジックコントローラ(以下、PLC)と複数のHMIクライアント機と1台または2台のSCADAサーバ機とを備える。SCADAサーバ機を冗長構成にした場合には、SCADAサーバ機は2台となる。PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合を含むブロックデータを一定周期ごとにコンピュータネットワークへ送信し、HMIクライアント機は、ウェブブラウザを表示するスクリーンを夫々備える。SCADAサーバ機は、通信ドライバと、複数のHMIクライアント機に1対1で接続されるクライアント管理部と、を備える。通信ドライバは、PLCから送信されたブロックデータを一定周期ごとに受信し、受信したブロックデータをデータ型ごとの信号データに分解し、分解した信号データに信号データ識別子を付加してデータ型ごとにクライアント管理部に送信する。クライアント管理部は、通信ドライバから送信された信号データを受信する受信スレッドと、受信スレッドで受信した信号データをデータ型ごとに信号データ識別子に対応させて格納可能な第1及び第2の信号データバッファと、第1または第2の信号データバッファに格納された信号データを読み出し、読み出した信号データに対応するHMIクライアント機に送信する送信スレッドと、を備える。送信スレッドが第1及び第2の信号データバッファの一方から信号データを読み出してHMIクライアント機に送信する間、第1及び第2の信号データバッファの他方に格納される信号データが上書きされるように構成される。
 第2の観点は、第1の観点に加えて、次の特徴を更に有する。受信スレッドは、データ識別子をインデックスとして使用し、第1及び第2の信号データバッファに信号データを格納するように構成される。
 第3の観点は、第2の観点に加えて、次の特徴を更に有する。第1及び第2の信号データバッファは、格納する信号データが更新されたときにONとなる更新フラグをインデックスに対応させて有するように構成される。受信スレッドは、更新フラグがONであるインデックスを格納したインデックスリストを作成するように構成される。インデックスリストは、更新領域を表すリストである。送信スレッドは、インデックスリストを参照し、更新フラッグがONであるインデックスの信号データ、すなわち、更新領域の信号データをHMIクライアント機に送信するように構成される。
 第1の観点によれば、送信スレッドが第1及び第2の信号データバッファの一方から信号データを読み出してHMIクライアント機に送信する間、第1及び第2の信号データバッファの他方に格納される信号データを更新することで、HMIクライアント機に送信する信号データを間引くことができる。従って、SCADAサーバ機への処理負荷が高い場合でも、HMIクライアント機のスクリーン上での表示更新の遅延やSCADAサーバ機の停止を防止することができる。
 第2の観点によれば、第1及び第2の信号データバッファへの信号データの格納または読み出しを少ない計算量で実行することができる。
 第3の観点によれば、更新領域の信号データのみをHMIクライアント機に送信することで、HMIクライアント機への送信データ量を少なくすることができ、可能な限り多くの信号データをHMIクライアント機に送信することができる。
実施の形態1に係るSCADAウェブHMIシステムの構成例を説明するための図である。 SCADAサーバ機が有する機能の概要を例示するブロック図である。 信号データバッファを説明するための模式図である。 クライアント管理部での信号処理を説明するための模式図である。 信号データ送信スレッドに対する負荷が低い場合のクライアント管理部での信号処理を説明するための模式図である。 信号データ送信スレッドに対する負荷が高い場合に実行される間引き処理を説明するための模式図(その1)である。 信号データ送信スレッドに対する負荷が高い場合に実行される間引き処理を説明するための模式図(その2)である。 信号データバッファに設定される更新フラグと信号データの更新領域を説明するための模式図である。 更新領域を表すリストを説明するための模式図である。 信号データ受信スレッドで実行される受信処理を説明するためのフローチャートである。 信号データ送信スレッドで実行される送信処理を説明するためのフローチャートである。 信号データを送信すべきHMIクライアント機を示すクライアントリストを示す模式図である。 SCADAサーバ機及びHMIクライアント機のハードウェア構成例を示すブロック図である。
 以下、図面を参照して本発明の実施の形態について詳細に説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
実施の形態1.
1-1.SCADAウェブHMIシステム
 図1は、実施の形態1に係るSCADAウェブHMIシステム1の構成例を説明するための図である。SCADAウェブHMIシステム1は、コンピュータネットワーク5を介して相互に接続された、PLC2、SCADAサーバ機3、HMIクライアント機4を備える。コンピュータネットワーク5は例えばイーサネット(登録商標)である。
 PLC2は、図示省略する制御ネットワークを介して産業プラントを構成するフィールド機器群に接続されている。フィールド機器群は、アクチュエータおよびセンサを含む。PLC2は、ブロックデータ(block data)を含むパケット(packet)をマルチキャストまたはブロードキャストでコンピュータネットワーク5へ一定周期ごとに送信する。送信周期は、例えば、数msecから数百msecの範囲内で設定され得る。ブロックデータは、PLC信号の集合である。1つのブロックデータには数十から数百のPLC信号が含まれる。PLC信号の種類として、入出力信号(アクチュエータ制御信号およびセンサ検出信号を含む)、アラーム信号がある。ブロックデータには入出力信号の集合およびアラーム信号の集合の少なくとも一方が含まれる。ブロックデータは、PLC信号の値が前回値から変化したか否かに関わらず、周期的にSCADAサーバ機3に送信される。
 HMIクライアント機4は、後述する図13に示すプロセッサ401、メモリ402、モニタ403を備える。メモリ402に記憶されたプログラムをプロセッサ401が実行することにより、プロセッサ401は、表示パーツ42が配置されたスクリーン41を表示するウェブブラウザ40を実行するように構成されている。モニタ403は、ウェブブラウザ40の画面を表示する。
 ウェブブラウザ40は、URLで指定したWebサーバ(図示省略)からスクリーン41に関するHTMLドキュメントの各種情報を取得可能である。Webサーバは、SCADAサーバ機3内に構築されている。スクリーン41は、リアルタイム性の要求される監視スクリーンを含む。
 ウェブブラウザ40は、ウェブブラウザ40に現在表示されているスクリーン41が監視スクリーンである場合に、SCADAサーバ機3から受信した入出力信号に応じて表示パーツ42の表示状態を変化させる。表示状態の変化とは、例えば、数値、文字、色、形の変化である。また、ウェブブラウザ40は、SCADAサーバ機3から受信したアラーム信号に応じてスクリーン41に配置された表示パーツ42の表示状態を変化させる。
1-2.SCADAサーバ機の機能概要
 図2は、実施の形態1に係るSCADAサーバ機3が有する機能の概要を例示するブロック図である。SCADAサーバ機3は、通信ドライバ31と、クライアント管理部32とを備える。
 通信ドライバ31は、一定周期ごとにPLC2からブロックデータを受信する受信処理311と、受信したブロックデータをデータ型ごとの信号データに分解するアンパック(unpack)処理312とを実行するように構成されている。本実施の形態では、データ型として、「bit(データサイズ1bit)」、「short(データサイズ2byte)」、「float(データサイズ4byte)」を用いる場合を例に説明するが、他のデータ型を用いることができる。さらに、通信ドライバ31は、各信号データに対応する信号データ識別子を付加してデータ型ごとのパケット(packet)を生成し、生成したパケットをクライアント管理部32に送信するパケット処理313を実行するように構成されている。即ち、通信ドライバ31からクライアント管理部32に送信されるデータは、信号データ識別子と信号データの値(value)との対である。
 ここで、信号データ識別子は、アプリケーション設計者が記述した文字列に対応するもので、データ型ごとにユニークである。信号データ識別子のデータサイズは、例えば、23bitである。これにより、信号データ識別子が、データ型ごとに約800万個の信号データを表すことができ、大規模なSCADAウェブHMIシステム1に対して十分に対応可能である。bit型のデータであれば、信号データ識別子が23bitで、データの値が1bitであるので、1信号あたりのデータサイズは、24bit(=3byte)となる。float型のデータであれば、信号データ識別子が23bitで、データの値が4byteであるので、1bitのパディングを付加して、1信号あたりのデータサイズは、7byteとなる。なお、パケットを生成する際、ウェブブラウザ40に現在表示されているスクリーン41に関する信号データ識別子の信号データのみを抽出するようにしてもよい。
 クライアント管理部32は、信号データ受信スレッド321と、第1の信号データバッファ322aと、第2の信号データバッファ322bと、信号データ送信スレッド323とを有する。
 信号データ受信スレッド321は、通信ドライバ31から受信したパケット(データ型ごとの信号データ)を受信する。信号データ受信スレッド321は、信号データ識別子を信号データバッファ322a,322bのインデックス(index)として利用する。信号データ受信スレッド321は、詳細は後述するが、第1の信号データバッファ322aまたは第2の信号データバッファ322bに信号データを格納する。
 第1及び第2の信号データバッファ322a,322bは同一の構成を持つ。以下、両信号データバッファ322a,322bを区別しない場合に、信号データバッファ322として説明することもある。
 信号データバッファ322は、図3に示すように、データ型ごとに信号データを格納する領域(配列)を持っている。各格納領域では、インデックスに対応させて信号データが格納される。各信号データに格納領域を割り当てる信号データ型の配列として実装することで、連想配列として実装する場合と比べて、信号データの信号データバッファ322への格納または読み出しを少ない計算量で実行することができるため、負荷を低減できて有利である。連想配列を使用する場合に比べ、メモリ使用量は大きくなるが、仮に、800万個の信号データが存在するとしても、text型を除けば、約24Mbyte程度のメモリ使用量であるので、現在の計算機の仕様を考慮すれば、問題ないメモリ使用量であると言える。
 信号データ送信スレッド323は、信号データ受信スレッド321からの指示を受けると、第1の信号データバッファ322aまたは第2の信号データバッファ322bに格納された信号データを読み出し、読み出した信号データをデータ型ごとにHMIクライアント機4に送信する。このとき、後述する更新領域Ru(図8参照)の信号データのみをHMIクライアント機4に送信することで、HMIクライアント機4に送信されるデータ量を少なくすることができる。
1-3.SCADAサーバ機における信号データ処理
 図4に示すように、信号データ受信スレッド321は、通信ドライバ31からパケット(信号データ)を受信すると、受信した信号データを第1の信号データバッファ322aに格納する。前述の通り、通信ドライバ31から受信したデータは、信号データ識別子と信号データとの対であるので、信号データ識別子をインデックスとして利用し、信号データ型に対応する格納領域(配列)のインデックス位置にデータ値を格納する。データの格納が終了すると、信号データ送信スレッド323が送信処理を完了しているか否かを確認する。
 図4(a)に示すように、送信処理中であれば、次の周期で受信したパケットの信号データも第1の信号データバッファ322aに格納する。このとき、同じインデックス位置でデータが上書きされることがある。これは、HMIクライアント機4への送信データ量がSCADAサーバ機3の処理能力を上回っている場合、つまり、SCADAサーバ機3に対する処理負荷が高い場合に、信号データの間引き処理が行われることを意味する。
 一方、図4(b)に示すように、信号データ送信スレッド323が送信処理を完了している場合には、信号データ送信スレッド323に第1の信号データバッファ322aに格納された信号データを読み出し、送信処理を行うように指示し、次の周期で受信したパケットの信号データは、第2の信号データバッファ322bに格納される。格納が終了すると、信号データ送信スレッド323が第1の信号データバッファ322aのデータの送信処理を完了しているか否かを確認する。送信処理中であれば、次の周期で受信したパケットの信号データも第2の信号データバッファ322bに格納される。このとき、同じインデックス位置でデータが上書きされることで、上記間引き処理が行われる。その後、第1の信号データバッファ322aのデータの送信処理が完了すると、信号データ送信スレッド323に第2の信号データバッファ322bに格納された信号データを読み出し、送信処理を行うように指示する。このような受信、格納、読み出し、送信の処理が、繰り返し行われる。
 図5を参照して、パケットに含まれる信号データ識別子A,B,Cの各信号データが、一定周期である100msec毎に1ずつインクリメントされる場合を例に、クライアント管理部32の処理を説明する。信号データ識別子A,B,Cは、インデックスとして利用されるため、インデックスもA,B,Cである。また、信号データ送信スレッド323は、第1または第2の信号データバッファ322a,322bに格納されたインデックスA,B,Cの各信号データの値を100msec以内に全てのHMIクライアント機4に送信できるものとする。このため、図5に示す例は、SCADAサーバ機3に対する処理負荷が低い。
 時刻Tにおいて、信号データ受信スレッド321が通信ドライバ31から1回目のパケットを受信すると、パケットに含まれる各信号データ(値=1)が第1の信号データバッファ322aのインデックスA,B,Cの位置に格納される。時刻T+100msecにおいて、信号データ送信スレッド323は、第1の信号データバッファ322aから信号データ(値=1)を読み出し、HMIクライアント機4に送信する。送信中、信号データ受信スレッド321が通信ドライバ31から2回目のパケットを受信すると、各信号データ(値=2)が第2の信号データバッファ322bのインデックスA,B,Cの位置に格納される。
 時刻T+200msecにおいて、信号データ送信スレッド323は、第2の信号データバッファ322bから信号データ(値=2)を読み出し、HMIクライアント機4に送信する。送信中、信号データ受信スレッド321が通信ドライバ31から3回目のパケットを受信すると、各信号データ(値=3)が第1の信号データバッファ322aのインデックスA,B,Cの位置に格納される。クライアント管理部32は、以上の処理を繰り返すため、上記間引き処理は行われない。
 図6及び図7を参照して、SCADAサーバ機3に対する処理負荷が高い場合のクライアント管理部32の処理を説明する。図6及び図7に示す例では、信号データ送信スレッド323が、第1または第2の信号データバッファ322a,322bに格納されたインデックスA,B,C,D,E,Fの各信号データの値を全てのHMIクライアント機4に送信するのに200msec要する点で、図5に示す例と相違する。以下、図5に示す例との相違点を中心に説明する。
 時刻T+200msecにおいて、信号データ受信スレッド321が3回目のパケットを受信すると、信号データ送信スレッド323の送信処理は完了しないため、第2の信号データバッファ322bのインデックスA~Fの位置に格納された各信号データ(値=2)はHMIクライアント機4に送信されず、第2の信号データバッファ322bのインデックスA~Fの位置に各信号データ(値=3)が上書きされる。
 同様に、時刻T+400msecにおいて、信号データ送信スレッド323の送信処理は完了しないため、第1の信号データバッファ322aのインデックスA~Fの位置に格納された各信号データ(値=4)はHMIクライアント機4に送信されず、第1の信号データバッファ322aのインデックスA~Fの位置に各信号データ(値=5)が上書きされる。
 さらに、時刻T+600msecにおいて、信号データ送信スレッド323の送信処理は完了しないため、第2の信号データバッファ322bのインデックスA~Fの位置に格納された各信号データ(値=6)はHMIクライアント機4に送信されず、第2の信号データバッファ322bのインデックスA~Fの位置に各信号データ(値=7)が上書きされる。
 このように、SCADAサーバ機3の性能とHMIクライアント機4に送信されるデータ量とに応じて、第1または第2の信号データバッファ322a,322bの信号データを上書きする間引き処理が自動で実行されることで、HMIクライアント機4に送信されるデータ量が調整される。
 HMIクライアント機4に送信されるデータ量を少なくするために、図8に示すように、信号データバッファ322が、格納する信号データの値が更新されたときにON(更新されなかったときはOFF)となる更新ビットを持つように構成してもよい。更新ビットは、1bitの更新フラグである。この場合、信号データ送信スレッド323は、信号データバッファ322の全体から更新ビットがONである信号データを抽出するように構成してもよいが、これでは効率が悪い。そこで、図9に示すように更新フラグがONであるインデックスを格納するインデックスリストLiを生成し、生成したインデックスリストLiを信号データバッファ322に格納するように、信号データ受信スレッド321を構成することができる。インデックスリストLiは、更新領域Ruを表すリストである。インデックスリストLiは、データ型ごとに生成され得る。さらに、信号データ送信スレッド323が、インデックスリストLiを参照し、更新フラグがONであるインデックスの信号データ、すなわち、更新領域Ruの信号データのみをHMIクライアント機4に送信するように構成することができる。これによれば、HMIクライアント機4に送信すべき信号データを効率良く抽出することができ、その結果として、HMIクライアント機4に送信されるデータ量を効率良く少なくすることができる。
 このように、更新領域Ruを設定することにより、HMIクライアント機4への効率的な信号データの送信を実現することができる。なお、図8及び図9には、ビット型の信号データの例を示しているが、他のデータ型の信号データにも更新フラグ及びインデックスリストLiを適用することで、より一層効率的な信号データの送信を実現することができる。
 図10は、信号データ受信スレッド321が実行する受信処理のルーチンの一例を示すフローチャートである。なお、図10中に破線で囲んで示す排他区間と、後述する図11中に破線で示す排他区間とのうち何れか一方のみが実行できる。すなわち、信号データ受信スレッド321が排他区間実行中は、信号データ送信スレッド323の排他区間の実行は待たれ、信号データ送信スレッド323が排他区間実行中は、信号データ受信スレッド321の排他区間の実行は待たれる。
 図10に示すルーチンでは、通信ドライバ31からの信号データの受信を待つ(ステップS11)。通信ドライバ31は、一定周期で同じデータ型の信号データを含むパケットを送信する。パケットの受信を開始すると(ステップS12)、受信完了フラグをOFFにする(ステップS13)。次に、現在の受信データバッファ番号に信号データを格納する(ステップS14)。現在の受信データバッファ番号とは、信号データの格納を行っている信号データバッファの番号であり、第1または第2の信号データバッファ322a,322bである。ステップS14では、上述したように、データ型ごとにインデックスに対応させて信号データが格納される。
 次に、現在の受信データバッファ番号と、後述する図11に示すルーチンにおける現在の送信データバッファ番号とが同じであるか判定する(ステップS15)。相違する場合、即ち、信号データ送信スレッド323による送信が完了した場合には、受信完了フラグをONにする(ステップS16)。これにより、次回受信したパケットの信号データは、現在とは異なる信号データバッファに格納される。ステップS16の後、ステップS11に戻る。一方、同じである場合には、ステップS17に進む。
 ステップS17では、セマフォV操作が実行される。次に、現在の受信データバッファ番号を更新する(ステップS18)。これにより、信号データ送信スレッド323に次に送信するデータが準備完了したことが通知される。ステップS18の終了後、ステップS11に戻る。
 図11は、信号データ送信スレッド323が実行する送信処理のルーチンの一例を示すフローチャートである。
 図11に示すルーチンでは、セマフォP操作を実行する(ステップS21)。セマフォP操作の実行により、信号データ受信スレッド321が送信するデータの準備が完了するまで待機となる。動作再開後、現在の送信データバッファ番号に格納された信号データをHMIクライアント機4に送信する(ステップS22)。現在の送信データバッファ番号とは、信号データの読み出しを行っている信号データバッファの番号であり、第1または第2の信号データバッファ322a,322bである。ステップS22において、図9に示すインデックスリストLiを参照し、更新フラグがONであるインデックスの信号データ、すなわち、更新領域Ruの信号データのみを送信する。これにより、HMIクライアント機4への送信データ量を少なくすることができるため、HMIクライアント機4の信号データの送信を速やかに完了させることができる。
 ここで、図12を参照して、信号データ送信スレッド323は、信号データに対応する信号データバッファ322のインデックスと、その信号データを送信すべきHMIクライアント機4との関係を規定したクライアントリストLcに従って、更新領域Ruの信号データを送信する。クライアントリストLcは、インデックスと、信号データを使用するスクリーン41のスクリーン識別子Gn(n=1,2,…)との関係を規定した第1のマップMp1、及び、HMIクライアント機4(4A,4B,4C)と、スクリーン識別子Gnとの関係を規定した第2のマップMp2とを用いて作成することができる。
 ステップS22の後、現在の送信データバッファ番号を更新する(ステップS23)。次に、現在の送信データバッファ番号と、図10に示すルーチンにおける現在の受信データバッファ番号とが同じであるか否かを判定する(ステップS24)。相違する場合には、ステップS21に戻る。同じである場合には、ステップS25に進む。
 ステップS25では、受信完了フラグがONであるか否かを判定する。受信完了フラグがOFFである場合、ステップS21の処理に戻る。一方、受信完了フラグがONである場合、セマフォV操作を実行する(ステップS26)。次に、現在の受信データバッファ番号を更新する(ステップS27)。次に、受信完了フラグをOFFにし(ステップS28)、ステップS21の処理に戻る。
1-4.SCADAサーバ機3及びHMIクライアント機4のハードウェア構成例
 図13は、SCADAサーバ機及びHMIクライアント機のハードウェア構成例を示すブロック図である。上述したSCADAサーバ機3の各処理は、処理回路により実現される。処理回路は、プロセッサ301と、メモリ302と、ネットワークインタフェース303とが接続して構成されている。プロセッサ301は、メモリ302に記憶された各種プログラムを実行することにより、SCADAサーバ機3の各機能を実現する。メモリ302は、主記憶装置および補助記憶装置を含む。また、メモリ302は、信号データを一時的に蓄積可能な保管領域である第1及び第2の信号データバッファ322a,322bを含む。
 上述したHMIクライアント機4の各処理は、処理回路により実現される。処理回路は、プロセッサ401と、メモリ402と、少なくとも1つのモニタ403と、ネットワークインタフェース404と、入力インタフェース405とが接続して構成されている。プロセッサ401は、メモリ402に記憶された各種プログラムを実行することにより、HMIクライアント機4の各機能を実現する。メモリ402は、主記憶装置および補助記憶装置を含む。モニタ403は複数台設けられてもよい。入力インタフェース405は、キーボード、マウス、タッチパネル等の入力デバイスである。
1-5.効果
 以上説明したように、本実施の形態によれば、信号データ送信スレッド323が第1及び第2の信号データバッファ322a,322bの一方から信号データを読み出してHMIクライアント機4に送信する間、第1及び第2の信号データバッファ322a,322bの他方に格納される信号データを上書き(更新)することで、HMIクライアント機4に送信する信号データを間引くことができる。これにより、HMIクライアント機4に送信しきれない信号データがSCADAサーバ機3の信号データバッファ322に滞留したり、SCADAサーバ機3のメモリ空き容量が少なくなったりすることが回避される。従って、SCADAサーバ機3への処理負荷が高い場合でも、HMIクライアント機4のスクリーン41上での表示更新の遅延やSCADAサーバ機3の停止を防止することができる。
 本実施の形態における間引き処理では、上書きすることにより、最新の信号データが間引かれることがない。しかも、間引かれる信号データのデータ量を可及的少なくすることができ、可能な限り多くの信号データをHMIクライアント機4に送信することができる。このため、SCADAウェブHMIシステム1のシステム性能を最大限に利用して間引き処理を行うことができる。
 以上、本発明の実施の形態について説明したが、本発明は、上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。上述した実施の形態において各要素の個数、数量、量、範囲等の数に言及した場合、特に明示した場合や原理的に明らかにその数に特定される場合を除いて、その言及した数にこの発明が限定されるものではない。また、上述した実施の形態において説明する構造等は、特に明示した場合や明らかに原理的にそれに特定される場合を除いて、この発明に必ずしも必須のものではない。
1…SCADAウェブHMIシステム
2…プログラマブルロジックコントローラ(PLC)
3…SCADAサーバ機
31…通信ドライバ
32…クライアント管理部
321…信号データ受信スレッド
322a…第1の信号データバッファ
322b…第2の信号データバッファ
323…信号データ送信スレッド
4…HMIクライアント機
40…ウェブブラウザ
41…スクリーン
5…コンピュータネットワーク
Li…インデックスリスト
Ru…更新領域

Claims (3)

  1.  コンピュータネットワークを介して接続する、複数のプログラマブルロジックコントローラ(以下、PLC)と複数のHMIクライアント機と1台のSCADAサーバ機とを備えるSCADAウェブHMIシステムであって、
     前記PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合を含むブロックデータを一定周期ごとに前記コンピュータネットワークへ送信し、
     前記HMIクライアント機は、ウェブブラウザを表示するスクリーンを夫々備えるものにおいて、
     前記SCADAサーバ機は、通信ドライバと、前記複数のHMIクライアント機に1対1で接続されるクライアント管理部と、を備え、
     前記通信ドライバは、前記PLCから送信された前記ブロックデータを前記一定周期ごとに受信し、受信したブロックデータをデータ型ごとの信号データに分解し、分解した信号データに信号データ識別子を付加してデータ型ごとに前記クライアント管理部に送信するように構成され、
     前記クライアント管理部は、
      前記通信ドライバから送信された信号データを受信する受信スレッドと、
      前記受信スレッドで受信した信号データをデータ型ごとに前記信号データ識別子に対応させて格納可能な第1及び第2の信号データバッファと、
      前記第1または第2の信号データバッファに格納された信号データを読み出し、読み出した信号データに対応する前記HMIクライアント機に送信する送信スレッド、を備え、
      前記送信スレッドが前記第1及び第2の信号データバッファの一方から信号データを読み出して前記HMIクライアント機に送信する間、前記第1及び第2の信号データバッファの他方に格納される信号データが上書きされるように構成されること
     を特徴とするSCADAウェブHMIシステム。
  2.  前記受信スレッドは、前記信号データ識別子をインデックスとして使用し、前記第1及び第2の信号データバッファに前記信号データを格納するように構成される請求項1に記載のSCADAウェブHMIシステム。
  3.  前記第1及び第2の信号データバッファは、格納する前記信号データが更新されたときにONとなる更新フラグを前記インデックスに対応させて有し、
     前記受信スレッドは、前記更新フラグがONである前記インデックスを格納したインデックスリストを生成し、
     前記送信スレッドは、前記インデックスリストを参照し、前記更新フラグがONであるインデックスの信号データを前記HMIクライアント機に送信するように構成される請求項2に記載のSCADAウェブHMIシステム。
PCT/JP2022/024703 2022-06-21 2022-06-21 Scadaウェブhmiシステム WO2023248339A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2023523304A JP7444335B1 (ja) 2022-06-21 2022-06-21 Scadaウェブhmiシステム
PCT/JP2022/024703 WO2023248339A1 (ja) 2022-06-21 2022-06-21 Scadaウェブhmiシステム
CN202280045115.5A CN117616740A (zh) 2022-06-21 2022-06-21 Scada网页hmi系统
TW112101048A TWI834470B (zh) 2022-06-21 2023-01-10 SCADA Web HMI系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/024703 WO2023248339A1 (ja) 2022-06-21 2022-06-21 Scadaウェブhmiシステム

Publications (1)

Publication Number Publication Date
WO2023248339A1 true WO2023248339A1 (ja) 2023-12-28

Family

ID=89379524

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/024703 WO2023248339A1 (ja) 2022-06-21 2022-06-21 Scadaウェブhmiシステム

Country Status (3)

Country Link
JP (1) JP7444335B1 (ja)
CN (1) CN117616740A (ja)
WO (1) WO2023248339A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014003590A (ja) * 2012-06-14 2014-01-09 Lsis Co Ltd 映像提供装置及び方法
WO2017168674A1 (ja) * 2016-03-31 2017-10-05 東芝三菱電機産業システム株式会社 プラント監視制御システム用データ再生装置
JP2020013527A (ja) * 2018-10-23 2020-01-23 株式会社キーエンス プログラマブルロジックコントローラおよびプログラム作成支援装置
WO2021245752A1 (ja) * 2020-06-01 2021-12-09 東芝三菱電機産業システム株式会社 Scadaウェブhmiシステムおよびhmiクライアント

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014003590A (ja) * 2012-06-14 2014-01-09 Lsis Co Ltd 映像提供装置及び方法
WO2017168674A1 (ja) * 2016-03-31 2017-10-05 東芝三菱電機産業システム株式会社 プラント監視制御システム用データ再生装置
JP2020013527A (ja) * 2018-10-23 2020-01-23 株式会社キーエンス プログラマブルロジックコントローラおよびプログラム作成支援装置
WO2021245752A1 (ja) * 2020-06-01 2021-12-09 東芝三菱電機産業システム株式会社 Scadaウェブhmiシステムおよびhmiクライアント

Also Published As

Publication number Publication date
JP7444335B1 (ja) 2024-03-06
CN117616740A (zh) 2024-02-27
TW202401273A (zh) 2024-01-01
JPWO2023248339A1 (ja) 2023-12-28

Similar Documents

Publication Publication Date Title
JP4197652B2 (ja) プラントの集中監視制御装置および方法
DE69815392T2 (de) Systeme und verfahren zur synchronisierung von redundanten steuerungen mit minimaler steuerungsstörung
CN1159630C (zh) 用于产生和分配警报和事件通知的系统和方法
TWI764582B (zh) SCADA Web HMI系統及HMI用戶端
Ramprasad et al. Leveraging existing sensor networks as IoT devices for smart buildings
JP5514040B2 (ja) 運用管理システム、運用管理方法及び運用管理装置
CN112055047B (zh) 一种面向智慧燃煤电厂的基于发布订阅的数据通信方法
WO2023248339A1 (ja) Scadaウェブhmiシステム
CN109392192B (zh) 用于快速通信的scada系统的装置连接的方法以及系统
TWI834470B (zh) SCADA Web HMI系統
CN110678848B (zh) 跨装置的通用数据访问
JP7464195B2 (ja) Scadaウェブhmiシステム
JP2000075907A (ja) 生産システム
JP3641137B2 (ja) 分散制御システム
JP7464196B2 (ja) Scadaウェブhmiシステム
JP2009042995A (ja) 分散情報流通制御方法及び分散システムとそのサーバ並びにプログラム
WO2020166026A1 (ja) 管理装置、管理システム、管理方法及びプログラム
KR20190016370A (ko) 고속통신을 위한 scada 시스템의 디바이스 연결 방법 및 그 장치
JP6776191B2 (ja) ゲートウェイ装置、ゲートウェイ装置により実行されるデータアクセス方法、コントローラ、及びコントローラにより実行されるデータアクセス方法
CN110290062B (zh) 一种网关及一种网关的数据处理方法
JP2787108B2 (ja) 電力系統の監視制御方法及びその装置
US20230062090A1 (en) System and method for acquisition and storage of data from a bacnet standard hvac system
KR100570899B1 (ko) 철강 등 생산라인의 원격 모니터링과 원격제어를 구현하는시스템
JPH05266381A (ja) プラント状態監視装置
JP2023007659A (ja) 制御装置、システムプログラムおよび方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 202280045115.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22947902

Country of ref document: EP

Kind code of ref document: A1