Web-based HMI subsystem and client installer

The web-based HMI subsystem automates client updates and browser restarts, addressing the operational load challenges in large-scale SCADA systems, thereby enhancing efficiency and reducing manual intervention.

WO2025134276A1PCT designated stage expired Publication Date: 2025-06-26TMEIC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/045740
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-20
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Existing web-based HMI subsystems for SCADA systems face significant operational loads due to the need for manual client installer execution and browser restarts, especially in large-scale deployments with remote clients.

Method used

A web-based HMI subsystem that automates client updates by generating a client installer on the SCADA server, which includes updated client and SCADA web programs, and automatically restarts the web browser, reducing the operational load and eliminating the need for manual installation.

Benefits of technology

The automated update process significantly reduces the operational load by minimizing manual intervention and optimizing bandwidth usage, ensuring seamless updates and reduced downtime in large-scale SCADA systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023045740_26062025_PF_FP_ABST
    Figure JP2023045740_26062025_PF_FP_ABST
Patent Text Reader

Abstract

A web-based HMI subsystem according to one embodiment of the present disclosure checks whether or not program update numbers match between a SCADA web program that is running on a web browser of a client and a SCADA web program that is installed on a SCADA server. If a discrepancy between the program update numbers is detected, a client installer is downloaded from the SCADA server, and the web browser is terminated. The downloaded client installer is executed, and an updated client program and the updated SCADA web program are installed on the client. In conjunction with the execution of the client installer, the web browser is restarted.
Need to check novelty before this filing date? Find Prior Art

Description

Web-based HMI subsystem and client installer

[0001] The present disclosure relates to a web-based HMI subsystem and a client installer suitable for use therewith.

[0002] SCADA (Supervisory Control And Data Acquisition) is known as a mechanism for monitoring and controlling social infrastructure systems. Social infrastructure systems include steel rolling systems, power transmission and transformation systems, water and sewerage treatment systems, building management systems, and road systems. SCADA is a type of industrial control system that uses computers to monitor systems and control processes. SCADA requires responsiveness (real-time performance) that matches the system's processing performance.

[0003] SCADA generally consists of the following subsystems: (1) Human Machine Interface (HMI) HMI is a mechanism that presents data from the target process (monitored device) to the operator, allowing the operator to monitor and control the process. For example, Patent Document 1 discloses a SCADA HMI equipped with an HMI screen that runs on a SCADA client. (2) Monitoring and Control System The monitoring and control system collects signal data from the process and sends control commands to the process. The monitoring and control system is composed of, for example, a programmable logic controller (PLC). (3) Remote Input / Output Device (RIO) The remote input / output device connects to sensors installed in the process, converts the sensor signals into digital data, and sends the digital data to the monitoring and control system. (4) Communication Infrastructure The communication infrastructure connects the monitoring and control system to the remote input / output device.

[0004] The client program of the HMI subsystem in Patent Document 1 is configured as a web-based HMI subsystem that is not dependent on the machine environment in order to reduce the cost of the SCADA HMI subsystem. Building a SCADA HMI subsystem as a web application that runs on a web browser offers the following advantages: (1) Because web browsers are installed on many terminal devices, such as personal computers and tablet PCs, a variety of terminal devices can be used as the SCADA HMI subsystem. (2) Web browsers have sophisticated rendering functions, making it easy to create advanced GUI interaction functions, including animations.

[0005] Republished Patent No. 2021-070315

[0006] In large-scale web-based HMI subsystems, in order to reduce communication loads, a web server is also run on the client side, and SCADA web programs are pre-distributed to the client. For this pre-distribution, a client installer is generated on the SCADA server, and the client installer is downloaded from the SCADA server to the client using the client's web browser. When the client installer is executed on the client, the web server and the content that the web server needs to reference are deployed on the client.

[0007] In the above method, a client installer must be run on each client each time the SCADA web program is updated, but the operation itself is simple. However, when the number of clients increases and the clients are located in remote locations within the factory where the SCADA is operated, a significant operational burden can become a problem. Furthermore, because application content is distributed to the SCADA server, even when the application content is updated, the client installer does not need to be run, but the web browser must be restarted. In this case, too, when the number of clients increases and the clients are located in remote locations within the factory, a significant operational burden can become a problem.

[0008] The present disclosure has been made in consideration of the above-mentioned problems. A first object of the present disclosure is to provide a web-based HMI subsystem that can reduce operational burdens by realizing automatic updates of clients. A second object of the present disclosure is to provide a client installer suitable for use in a web-based HMI subsystem that can achieve the first object.

[0009] To achieve the first object, the web-based HMI subsystem according to the first aspect of the present disclosure is configured as follows.

[0010] A web-based HMI subsystem according to a first aspect of the present disclosure includes a client that runs a SCADA web program on a web browser, and a SCADA server connected to the client.

[0011] According to a first aspect of the present disclosure, the SCADA server executes a SCADA server installer including an updated server program and an updated SCADA web program, installs the updated server program and the updated SCADA web program, and generates a client installer including an updated client program and the installed updated SCADA web program.

[0012] According to a first aspect of the present disclosure, a client checks whether the program update numbers of a SCADA web program running on a web browser match those of a SCADA web program installed on a SCADA server. If a mismatch in the program update numbers is detected, the client downloads a client installer from the SCADA server and closes the web browser. The client then executes the downloaded client installer to install the updated client program and the updated SCADA web program. The client then restarts the web browser in conjunction with the execution of the client installer.

[0013] To achieve the first object, the web-based HMI subsystem according to the second aspect of the present disclosure may be further configured as follows in the web-based HMI subsystem according to the first aspect.

[0014] According to a second aspect of the present disclosure, the SCADA server downloads updated application content. Also, according to the second aspect of the present disclosure, the client checks whether the content update numbers of the application content used by the client and the application content on the SCADA server match. Then, upon confirmation of a mismatch in the content update numbers, the client loads the application content on the SCADA server into a SCADA web program. Furthermore, the client restarts the web browser in conjunction with the loading of the application content on the SCADA server.

[0015] Furthermore, in order to achieve the first object, the web-based HMI subsystem according to the third aspect of the present disclosure may be further configured as follows in addition to the web-based HMI subsystem according to the first aspect.

[0016] According to a third aspect of the present disclosure, the client program includes a local web server. Also according to the third aspect of the present disclosure, the client executes the local web server included in the client program installed on the client. According to the third aspect of the present disclosure, when a program update number mismatch is detected, the executed local web server downloads a client installer from the SCADA server and closes the web browser. The executed local web server then executes the downloaded client installer to install an updated client program and an updated SCADA web program.

[0017] Furthermore, in order to achieve the first object, the web-based HMI subsystem according to the fourth aspect of the present disclosure may be further configured as follows in addition to the web-based HMI subsystem according to the third aspect.

[0018] According to a fourth aspect of the present disclosure, the client program further includes an application launch program. Also, according to the fourth aspect of the present disclosure, the client installer further includes system configuration information. According to the fourth aspect of the present disclosure, the client installer executes the application launch program included in the client program installed on the client. The executed application launch program acquires information about the SCADA server to which the client is connected from the system configuration information. The executed application launch program then specifies arguments for loading and executing a SCADA web program after launching a web browser, based on the information about the SCADA server. Furthermore, the executed application launch program restarts the web browser based on the specified arguments.

[0019] Furthermore, in order to achieve the first object, the web-based HMI subsystem according to the fifth aspect of the present disclosure may be further configured as follows in addition to the web-based HMI subsystem according to the third aspect.

[0020] According to a fifth aspect of the present disclosure, the executed local web server checks whether the content update numbers of the application content used by the client and the application content on the SCADA server match. Then, upon confirmation of a mismatch in the content update numbers, the executed local web server loads the application content on the SCADA server into a SCADA web program. Furthermore, the executed local web server restarts the web browser in conjunction with the loading of the application content on the SCADA server.

[0021] A web-based HMI subsystem according to a sixth aspect of the present disclosure may be the web-based HMI subsystem according to any one of the first to fifth aspects, further configured as follows.

[0022] According to a sixth aspect of the present disclosure, a client saves current screen information before restarting a web browser, and then restarts the web browser with the screen state before the restart restored based on the saved screen information.

[0023] The web-based HMI subsystem according to the seventh aspect of the present disclosure may be further configured as follows in addition to the web-based HMI subsystem according to the first aspect.

[0024] According to a seventh aspect of the present disclosure, the SCADA server includes a first SCADA server and a second SCADA server, and the clients include a first client connected to the first SCADA server and a second client connected to the second SCADA server.

[0025] According to a seventh aspect of the present disclosure, a first client switches its connection destination from the first SCADA server to the second SCADA server when update preparation for the first SCADA server is completed. Then, when the first SCADA server is restarted after updating the SCADA web program, the first client switches its connection destination from the second SCADA server to the first SCADA server. Furthermore, the first client downloads and installs the updated SCADA web program from the first SCADA server.

[0026] According to a seventh aspect of the present disclosure, a second client switches its connection destination from the first SCADA server to the second SCADA server upon completion of update preparation of the second SCADA server. Then, the second client downloads and installs the updated SCADA web program from the first SCADA server. Furthermore, the second client switches its connection destination from the first SCADA server to the second SCADA server upon restarting the second SCADA server after updating the SCADA web program.

[0027] The web-based HMI subsystem according to the eighth aspect of the present disclosure may be further configured as follows in the web-based HMI subsystem according to the seventh aspect.

[0028] According to an eighth aspect of the present disclosure, the client further includes a third client having a first web browser connected to the first SCADA server and a second web browser connected to the second SCADA server. According to the eighth aspect of the present disclosure, the third client switches the connection destination of the first web browser from the first SCADA server to the second SCADA server when update preparation of the first SCADA server is completed. Then, the third client switches the connection destination of the first web browser and the second web browser from the second SCADA server to the first SCADA server when the first SCADA server is restarted after updating the SCADA web program. Furthermore, the third client downloads and installs the updated SCADA web program from the first SCADA server. Furthermore, the third client switches the connection destination of the second web browser from the first SCADA server to the second SCADA server when the second SCADA server is restarted after updating the SCADA web program.

[0029] In order to achieve the second object, the client installer according to the ninth aspect of the present disclosure is configured as follows.

[0030] A client installer according to a ninth aspect of the present disclosure is a client installer generated by a SCADA server and executed by a client, the client installer according to the ninth aspect of the present disclosure comprising an installation program and program additional data to be added to the installation program.

[0031] According to a ninth aspect of the present disclosure, the program-ancillary data includes a SCADA web program that runs on a web browser of a client, a client program that runs on the client, system configuration information for connecting to a SCADA server, and location information of the program-ancillary data within a program file.

[0032] According to a ninth aspect of the present disclosure, an installation program refers to the location information to separate the SCADA web program, the client program, and the system configuration information from the program files, and then deploys the separated SCADA web program, the client program, and the system configuration information on the client.

[0033] A client installer according to a tenth aspect of the present disclosure may be the client installer according to the ninth aspect, further configured as follows.

[0034] According to a tenth aspect of the present disclosure, the client program includes a local web server running on the client, the local web server including logic for causing the client to automatically update a SCADA web program, and an application launch program for launching a web browser, the application launch program configured to specify arguments for loading and executing the SCADA web program after the web browser is launched based on information about the SCADA server included in the system configuration information.

[0035] As described above, according to a web-based HMI subsystem according to one aspect of the present disclosure, when a SCADA web program is updated, a client installer is automatically executed on the client and the web browser is automatically restarted, thereby reducing the operational load. Furthermore, according to a web-based HMI subsystem according to another aspect of the present disclosure, when application content is updated, a web browser is automatically restarted on the client, thereby reducing the operational load. According to a client installer according to yet another aspect of the present disclosure, updated programs and information, including a SCADA web program, can be deployed on the client without requiring a compiler.

[0036] 1 is a diagram illustrating a configuration of a large-scale SCADA HMI system to which a web-based HMI subsystem according to an embodiment of the present disclosure is applied; FIG. 2 is a diagram illustrating a configuration of a web-based HMI subsystem of a first proposal considered in the process of creating the present disclosure; FIG. 3 is a diagram illustrating a configuration of a web-based HMI subsystem of a second proposal considered in the process of creating the present disclosure; FIG. 4 is a diagram illustrating a configuration of a web-based HMI subsystem according to an embodiment of the present disclosure; FIG. 5 is a diagram illustrating a program file configuration of a client installer according to an embodiment of the present disclosure; FIG. 6 is a diagram illustrating a flow of automatic update of a client according to an embodiment of the present disclosure; FIG. 7 is a diagram illustrating a method for checking the version of a SCADA web program according to an embodiment of the present disclosure; FIG. 8 is a diagram illustrating a method for checking the revision of application content according to an embodiment of the present disclosure; FIG. 9 is a diagram illustrating a flow of automatic update of a client in a server duplex system according to an embodiment of the present disclosure;

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

[0038] 1 is a diagram showing the configuration of a large-scale SCADA HMI system to which a web-based HMI subsystem according to an embodiment of the present disclosure is applied. The large-scale SCADA HMI system 2 is a client-server system in which approximately 100 PLCs 300 and approximately 100 clients 100 are connected to a SCADA server 200 via a computer network. Each of the PLCs 300 is connected to a separate control network 310 within the same plant, for example.

[0039] The PLC signal data output by each PLC 300 is input to a communication driver 222 of the SCADA server 200. The SCADA server 200 generates display signal data from the PLC signal data and distributes the display signal data to each client 100 from a client management unit 221. The client management unit 221 is a web server, and the client 100 is equipped with a web browser. The web browser displays, for example, an HMI screen on which parts that display the status of the plant are arranged, and changes the display of the HMI screen in accordance with the display signal data distributed from the client management unit 221.

[0040] 2. Configuration of the Web-Based HMI Subsystem 2-1. First Proposal of the Web-Based HMI Subsystem Before describing the web-based HMI subsystem according to an embodiment of the present disclosure, two proposals for the web-based HMI subsystem that were considered in the creation process will be described.

[0041] 2 is a diagram showing the configuration of the web-based HMI subsystem 10-1 of the first proposed solution. More specifically, it shows the configuration for updating the SCADA web program and application content in the web-based HMI subsystem 10-1.

[0042] The client 100 is a computer equipped with a processor 110, a memory 120, and a storage 130. The memory 120 includes a program memory. The program memory stores programs that describe the processes to be executed by the processor 110. Each program is composed of multiple instruction codes. A web browser 121 is also deployed on the memory 120. A SCADA web program 140 runs on the web browser 121.

[0043] The SCADA server 200 is a computer comprising a processor 210, a memory 220, and a storage 230. The memory 220 includes a program memory. The program memory stores programs that describe the processes to be executed by the processor 210. Each program is made up of multiple instruction codes. In addition, a web server 221 and a communication driver 222 are deployed on the memory 220 as a client management unit.

[0044] The SCADA web program is first installed in the SCADA server 200. A SCADA server installer 500 is used for the installation. By installing and executing the SCADA server installer 500 in the SCADA server 200, the SCADA web program 240 and the server program 250 are deployed on the storage 230. By loading the server program 250 into the memory 220, the web server 221 operates.

[0045] The SCADA web program 140 running on the web browser 121 of the client 100 is loaded from the web server 221 on the SCADA server 200. The updated SCADA web program 240 in the storage 230 is loaded into the web browser 121 via the web server 221, thereby updating the SCADA web program 140 in the client 100. Loading the SCADA web program 240 from the web server 221 to the client 100 uses the communication bandwidth used for communicating PLC signal data and PLC control commands.

[0046] The SCADA web program 122 of the client 100 loads application content running on the web browser 121 from the SCADA server 200. More specifically, application content 260 in the storage 230 of the SCADA server 200 is loaded into the web browser 121 via the web server 221. Loading the application content from the SCADA server 200 to the client 100 uses the communication bandwidth used for communicating PLC signal data and PLC control commands. The SCADA web program 140 updates the screen using application content 233 in accordance with the PLC signal data received from the PLC 300, and sends PLC control commands to the SCADA server 200 in accordance with the operator's operations.

[0047] Application content used in the web browser 121 is developed by an application developer 400. Application content 420 developed by the application developer 400 is downloaded to the storage 230 of the SCADA server 200 by an engineering tool 410. When new application content 420 is downloaded to the SCADA server 200, the application content 260 is updated, and the application content running on the web browser 121 of the client 100 is updated.

[0048] In the web-based HMI subsystem 10-1 of the first proposal configured as described above, the communication bandwidth between the client 100 and the SCADA server 200 is used to update the SCADA web program 140 running on the web browser 121. The communication bandwidth between the client 100 and the SCADA server 200 is also used to update the application content running on the web browser 121. However, when the web-based HMI subsystem 10-1 of the first proposal is applied to the large-scale SCADA HMI system 2 described above, the client 100 communicates with approximately 100 PLCs 300 via the SCADA server 200. In this case, the communication bandwidth is used up to nearly the upper limit of its performance by communicating PLC signal data and PLC control commands, which may prevent the SCADA web program 140 from being loaded from the SCADA server 200 to the client 100 due to the performance limit of the communication bandwidth.

[0049] The first proposed web-based HMI subsystem 10-1 has the above-mentioned problems. The second proposed web-based HMI subsystem, which will be described next, was developed to solve these problems.

[0050] 2-2. Web-based HMI Subsystem of Second Proposal Figure 3 shows the configuration of the web-based HMI subsystem 10-2 of the second proposed proposal. More specifically, it shows the configuration for updating the SCADA web program and application content in the web-based HMI subsystem 10-2.

[0051] The web-based HMI subsystem 10-2 of the second proposal employs a method in which a SCADA web program is installed on each local client 100. In addition, in the web-based HMI subsystem 10-2 of the second proposal, a local web server 151 is deployed together with a web browser 121 on the memory 120 of the client 100. A SCADA web program 140 runs on the web browser 121. The local web server 151 is responsible for processing that cannot be performed by the web server 221 of the SCADA server 200 from a security standpoint.

[0052] More specifically, in the web-based HMI subsystem 10-2 of the second proposal, a client installer 600 is used to install the SCADA web program. The client installer 600 includes a SCADA web program 140 and a client program 150. By installing and executing the client installer 600 on the client 100, the SCADA web program 140 and the client program 150 are deployed on the storage 130. The installation of the client installer 600 on each client 100 is performed by an operator for each client 100.

[0053] An updated local web server 151 operates when an updated client program 150 is loaded into memory 120. Then, an updated SCADA web program 140 is loaded into memory 120 by local web server 151, thereby updating SCADA web program 140 operating on web browser 121. In this way, in web-based HMI subsystem 10-2 of the second proposal, SCADA web program 140 operating on web browser 121 is not loaded from web server 221, but is installed directly on each client 100.

[0054] When the client installer 600 is installed on each client 100, the SCADA server installer 500 is also installed on the SCADA server 200. In the second plan, the SCADA web program is not loaded from the web server 221 to the client 100. However, the SCADA server installer 500 includes the SCADA web program 240 together with the server program 250, and the SCADA web program 240 is installed on the SCADA server 200. This is because there are cases where a web browser is launched on the SCADA server 200 as well to run the application content 233.

[0055] In the web-based HMI subsystem 10-2 of the second proposal configured as described above, updating the SCADA web program 140 running on the web browser 121 does not use the communication bandwidth between the client 100 and the SCADA server 200. This allows PLC signal data and PLC control commands to use the full communication bandwidth. However, on the other hand, the web-based HMI subsystem 10-2 of the second proposal requires an operator to install the client installer 600 for each client 100. When the web-based HMI subsystem 10-2 of the second proposal is applied to the large-scale SCADA HMI system 2 described above, the number of clients 100 is on the order of 100, and these clients 100 are located in widely separated locations. Therefore, in the web-based HMI subsystem 10-2 of the second proposal, updating the SCADA web program 140 imposes a heavy burden.

[0056] The web-based HMI subsystem 10-2 of the second proposal has the above-mentioned problems. The system that was studied to solve these problems is the web-based HMI subsystem according to this embodiment, which will be described next.

[0057] 4 is a diagram showing the configuration of the web-based HMI subsystem 10 according to this embodiment. More specifically, it is a diagram showing the configuration for updating the SCADA web program and application content in the web-based HMI subsystem 10.

[0058] In the web-based HMI subsystem 10 according to this embodiment, the SCADA web program 240 stored in the storage 230 includes a version number 240a, which is a program update number. Every time the SCADA server installer 500 is installed in the SCADA server 200 and the SCADA web program 240 is updated, the version number 240a is incremented by one. The SCADA server installer 500 includes a server program 250 that operates the web server 221 together with the SCADA web program 231.

[0059] In the web-based HMI subsystem 10 according to this embodiment, the application content 260 stored in the storage 230 includes a revision number 260a, which is a content update number. The application content 260 also includes system configuration information 262. The system configuration information is information used by the client 100 to connect to the SCADA server 200. If the client 100 can connect to multiple SCADA servers, for example, if the client 100 has a primary server and a secondary server as connection targets, the system configuration information includes information about each SCADA server (such as its host name and IP address). Furthermore, the system configuration information is application-dependent. That is, the system configuration information differs for different applications.

[0060] The application development machine 400 assigns revision numbers to the application content and adds system configuration information. The application content 420 downloaded to the SCADA server 200 by the engineering tool 410 includes a revision number 420a and system configuration information 422. The application content 260 stored in the storage 230 is updated by the downloaded application content 420, and the revision number 260a is updated to the revision number 420a. The system configuration information 262 is also updated to the system configuration information 422.

[0061] The web-based HMI subsystem 10 according to this embodiment, like the web-based HMI subsystem 10-2 of the second embodiment, employs a method of installing a SCADA web program for each client 100 using a client installer. However, in the second embodiment, an operator is required to install the client installer 600 for each client 100. In contrast, in this embodiment, the client installer 270 is automatically downloaded and installed from the SCADA server 200 to the client 100. The client installer 270 is downloaded while the monitored device is stopped. Therefore, the client installer 270 can be reliably downloaded from the SCADA server 200 to the client 100, regardless of the congestion of the communication bandwidth caused by the transmission of PLC signal data and PLC control commands.

[0062] More specifically, in the web-based HMI subsystem 10 according to this embodiment, the client installer 270 is generated by the SCADA server 200. The SCADA server 200 creates the client installer 270, which includes the latest SCADA web program 240 and the latest system configuration information 262 stored in the storage 230, as well as the latest client program. By installing and executing the client installer 270 on the client 100, the SCADA web program 140, the client program 160, and the system configuration information 170 stored in the storage 130 are updated. In addition, the version number 140a of the SCADA web program 140 is updated to version number 240a.

[0063] In the web-based HMI subsystem 10 according to this embodiment, the client program 160 includes a local web server 162 and an application launch program 161. The local web server 162 is a web server that runs on the client 100. The local web server 162 installed on the client 100 is responsible for processing that cannot be performed by the web server 221 of the SCADA server 200 from a security standpoint. The local web server 162 includes client automatic update logic 163.

[0064] The application launch program 161 is launched by execution of the client installer 270. The application launch program 161 is a program that launches the web browser 121. After the web browser 121 is launched, the application launch program 161 specifies the launch arguments of the web browser 121 so that the SCADA web program 140 is loaded and executed. The application launch program 161 also acquires information about the destination server from the system configuration information 170, checks the status of the destination server, and determines the timing for launching the web browser 121.

[0065] If the SCADA servers 200 connected to one client 100 are duplicated, the application startup program 161 checks the status of the servers in the order of the primary server and then the secondary server. The application startup program 161 then specifies the SCADA server 200 that is ready as the connection destination server in the startup arguments of the web browser 121. This allows the SCADA web program 140 to connect to the appropriate server. If neither the primary server nor the secondary server is running, the application startup program 161 delays the startup of the web browser 121 until one of the servers is started.

[0066] In the web-based HMI subsystem 10 according to this embodiment configured as described above, updates to the SCADA web program and updates to application content in the client 100 are performed in accordance with the client automatic update logic 163. When updating the SCADA web program, its version number is referenced. When updating the application content, its revision number is referenced. Specific methods for updating the SCADA web program and application content in accordance with the client automatic update logic 163 will be described in detail later.

[0067] 2-4. Program File Configuration of Client Installer The web-based HMI subsystem 10 according to this embodiment is also characterized by the configuration of the client installer 270 generated by the SCADA server 200. Figure 5 is a diagram showing the program file configuration of the client installer 270.

[0068] The client installer 270 is an execution program for Windows (registered trademark). The client installer 270 is composed of an installation program 271 and program additional data 272 added to the end of the installation program 271. The program additional data 272 includes a SCADA web program 240, a client program 280, system configuration information 262, and program additional data location information 280. The client program 280 includes a local web server 282 and an application launch program 281.

[0069] Program additional data location information 290 is information relating to the location of program additional data 272 within the program file of client installer 270. Installer program 271 refers to this information 290, separates SCADA web program 240, client program 280, and system configuration information 262 from the program file, and deploys them on storage 130 of client 100. As a result, SCADA web program 140 and client program 150 installed on client 100 are updated, and the saved system configuration information 170 is also updated.

[0070] According to the client installer 270 configured as above, updated programs and information including SCADA web programs can be deployed on the client 100 without requiring a compiler.

[0071] 3. Automatic Client Update Method 3-1. Flow of Automatic Client Update In the web-based HMI subsystem 10 according to this embodiment, when the monitored device is stopped, the client 100 is automatically updated according to the client automatic update logic 163 included in the local web server 162. Figure 6 is a diagram for explaining the flow of automatic update of the client 100 according to this embodiment.

[0072] The automatic update of the client 100 is executed at regular intervals according to a timer defined by the client automatic update logic 163. When the time to check the automatic update arrives, first, flow F01 shown in FIG. 6 is executed. Each process defined in flow F01 is executed by the client automatic update logic 163.

[0073] First, in step S101 of flow F01, a version check of the SCADA web program is performed. The SCADA web program is first installed on the SCADA server 200, and then the program installed on the SCADA server 200 is installed on the client 100 by the client installer 270. For this reason, it is possible that the SCADA web program 240 on the SCADA server 200 has been updated, but the SCADA web program 140 on the client 100 has not. In this case, a mismatch occurs between the version number 240a of the SCADA web program 240 and the version number 140a of the SCADA web program 140.

[0074] If the version numbers match in step S101, this means that the SCADA web program 240 of the SCADA server 200 has not been updated. In this case, the process proceeds to step S102. In step S102, a revision check of the application content is performed. The application content is first downloaded to the SCADA server 200, and then the content downloaded to the SCADA server 200 is downloaded from the web server 221 to the client 100. For this reason, it is possible that the application content 260 of the SCADA server 200 has been updated but has not yet been downloaded to the client 100. In this case, a mismatch occurs in the revision numbers of the application content between the SCADA server 200 and the client 100.

[0075] If the revision numbers match in step S102, this means that the application content 260 of the SCADA server 200 has not been updated. In this case, it is determined that neither an automatic update of the SCADA web program nor an automatic update of the application content in the client 100 is necessary at this time, and the check for the client automatic update in flow F01 ends.

[0076] On the other hand, if the revision numbers do not match as determined in step S102, this means that the application content 260 of the SCADA server 200 has been updated. In this case, the flow proceeds to step S105. In step S105, the URL of the web browser 121 is changed to the currently connected SCADA server 200, and the web browser 121 is restarted. By restarting the web browser 121, the updated application content 260 is loaded from the SCADA server 200 into the web browser 121. After step S105 is executed and the application content is automatically updated, the check for client automatic update by flow F01 ends.

[0077] Returning to step S101, a case will be described where the version numbers do not match as determined in step S101. A mismatch in the version numbers means that the SCADA web program 240 of the SCADA server 200 has been updated. In this case, the process proceeds to step S103. In step S103, the client installer 270 is downloaded from the SCADA server 200. Next, in step S104, the web browser 121 is closed and the client installer 270 is launched. With the client installer 270 launched, the check for automatic client updates by flow F01 ends.

[0078] When the client installer 270 is started in step S104 of the flow F01, the flow F02 shown in Fig. 6 is executed. Each process defined in the flow F02 is executed by the client installer 270.

[0079] First, in step S201 of flow F02, program additional data 272 is separated from the program file of the client installer 270. Next, in step S202, the installation program 271 is executed. Execution of the installation program 271 updates the SCADA web program 140, client program 160, and system configuration information 170 on the client 100. Then, in step S203, the application launch program 161 included in the client program 160 is launched. With the launch of the application launch program 161, the processing of the client installer 270 defined in flow F02 ends.

[0080] When the application startup program 161 is started in step S203 of flow F02, flow F03 shown in Fig. 6 is executed. Each process defined in flow F03 is executed by the application startup program 161.

[0081] First, in step S301 of flow F03, system configuration information 170 is read, and information regarding the status of SCADA server 200, which is the connection destination, is obtained from system configuration information 170. Next, in step S302, arguments for loading and executing SCADA web program 140 after web browser 121 is launched are specified based on the information from SCADA server 200. Then, web browser 121 is restarted based on the specified arguments. Restarting web browser 121 ends the processing of application startup program 161 defined in flow F03.

[0082] 3-2. Method for Checking the Version of the SCADA Web Program In step S101 of flow F01 shown in Fig. 6, a version check of the SCADA web program is performed. Details of the version check method will be described below with reference to Fig. 7.

[0083] 7 compares the versions of the SCADA web program 140 and client program 160 installed on the client 100 with the versions of the SCADA web program 240 and server program 250 installed on the SCADA server 200. The subscripts of each symbol indicate the version number. For example, SCADA web program 140_N means that the SCADA web program 140 has version number N.

[0084] 7, the version number of the SCADA web program 140_N installed in the client 100 is N. The version number of the SCADA web program 240_N installed in the SCADA server 200 is also N. Since the version numbers of both programs match, there is no need to update the SCADA web program 140_N of the client 100.

[0085] At time TB, which is later than time TA, the SCADA server 200 is upgraded. In this upgrade, a version N+1 SCADA server installer 500_N+1 is executed, and a SCADA web program 240_N+1 and a server program 250_N+1 are installed in the SCADA server 200. As a result, a mismatch in version numbers occurs between the SCADA web program 140_N installed in the client 100 and the SCADA web program 240_N+1 installed in the SCADA server 200.

[0086] In response to the mismatch in version numbers, at time TC, a version upgrade of client 100 is performed. In this version upgrade, first, a client installer 270_N+1 including updated SCADA web program 240_N+1 is generated by SCADA server 200. Then, client installer 270_N+1 of version N+1 is executed by client 100, and SCADA web program 140_N+1 having version number N+1 is installed on client 100.

[0087] After the installation of the SCADA web program 140_N+1, the execution of the application launch program 161 included in the updated client program 160_N+1 is required to complete the update of the client 100. When the application launch program 161 is executed, the web browser 121 is forcibly restarted. However, if the web browser 121 is suddenly restarted while the operator is working, this may surprise the operator and cause inconvenience to the operator. Therefore, in conjunction with the execution of the application launch program 161, a pop-up message such as "The SCADA system has been updated" may be displayed on the screen of the client 100 to alert the operator.

[0088] 3-3. Revision Check Method for Application Content A revision check for application content is performed in step S102 of flow F01 shown in Fig. 6. Details of the revision check method will be described below with reference to Fig. 8.

[0089] 8, the revision of the application content 190 used by the client 100 is compared with the revision of the application content 260 downloaded to the SCADA server 200. The subscripts of each reference number indicate the revision number. For example, application content 190_N means that the application content 190 has revision number N.

[0090] 8, the revision number of the application content 190_N being used by the client 100 is N. The revision number of the application content 260_N downloaded to the SCADA server 200 is also N. Since the revision numbers of both are the same, there is no need to update the application content 190_N of the client 100.

[0091] At time TE, which is later than time TD, application content 260_N is revised up in SCADA server 200. In this revision up, application content 420_N+1 of revision N+1, which was developed by application developer 400, is downloaded to SCADA server 200 by engineering tool 410. As a result, application content 260_N of revision number N is updated to application content 260_N+1 of revision number N+1 in SCADA server 200 as well. As a result, a mismatch in revision numbers occurs between application content 190_N used by client 10 and application content 260_N+1 downloaded to SCADA server 200.

[0092] In response to the mismatch in revision numbers, at time TF, the application content 190_N being used by the client 100 is revised up. In this revision up, first, the web browser 121 of the client 100 is restarted, so that the application content 260_N+1 is loaded from the SCADA server 200 to the client 100. As a result, the application content 190_N being used by the client 100 is updated to application content 190_N+1 having a revision number of N+1.

[0093] Updating the application content 260 requires restarting the web browser 121. However, if the web browser 121 is suddenly restarted while the operator is working, the operator may be surprised and inconvenienced. Therefore, prior to restarting the web browser 121, a pop-up message such as "The application has been updated" may be displayed on the screen of the client 100 to alert the operator.

[0094] 4. Saving Screens When Web Browser is Restarted SCADA web program 140 is running in web browser 121, displaying application content. In web-based HMI subsystem 10 according to this embodiment, when client 100 is automatically updated, the currently displayed screen name and window information are saved when web browser 121 is closed. Then, when web browser 121 is restarted and SCADA web program 140 is running, the screen state before web browser 121 was closed is restored according to the saved screen name and window information.

[0095] When the SCADA web program 140 or application content 260 is updated for the client 100, the operator's operations on the client 100 are temporarily interrupted. However, with the above mechanism, the screen before the interruption is automatically restored after the web browser 121 is restarted, allowing the operator to smoothly resume operations on the client 100.

[0096] 5. Automatic client update method in a server duplex system In the web-based HMI subsystem according to this embodiment, the SCADA server may be duplicated. A web-based HMI subsystem in which the SCADA server is duplicated is called a server duplex system. Figure 9 is a diagram for explaining the flow of automatic client update in the server duplex system according to this embodiment.

[0097] 9, client 1, client 2, and client 3 are connected to server A (first SCADA server) and server B (second SCADA server) via a network. Client 1, client 2, and client 3 all correspond to client 100 according to this embodiment. Server A and server B all correspond to SCADA server 200 according to this embodiment. However, while client 1 has one web browser 1_1 and client 2 also has one web browser 2_1, client 3 has two independent web browsers 3_1 and 3_2.

[0098] For client 1, server A is the primary server and server B is the secondary server. For client 2, server B is the primary server and server A is the secondary server. For client 3, server A is the primary server and server B is the secondary server for web browser 3_1, while server B is the primary server and server A is the secondary server for web browser 3_2.

[0099] The state shown in step S01 is a state in which automatic updating of clients has not yet started. All web browsers are connected to the primary server. That is, web browser 1_1 of client 1 and web browser 3_1 of client 3 are connected to the currently operating server A. Web browser 3_2 of client 3 and web browser 2_1 of client 2 are connected to the currently operating server B. In this state, the SCADA web programs of all clients are old versions, and the SCADA web programs of both servers are also still old versions.

[0100] In step S02, automatic updating of the clients begins. First, the connection destination of web browser 1_1 of client 1 and web browser 3_1 of client 3 is switched from server A, which is the primary server, to server B, which is the secondary server. The connection destination of web browser 3_1 of client 3 and web browser 2_1 of client 2 remains server B, which is the primary server. Then, server A is stopped to upgrade the version, and a new version of the SCADA web program is installed on server A. In this state, the SCADA web programs of all clients are still the old version.

[0101] In step S03, the upgraded server A is started. After server A is started, the connection destination of web browser 1_1 of client 1 and web browser 3_1 of client 3 is returned to the upgraded server A. Furthermore, the connection destination of web browser 3_2 of client 3 is also switched from server B, which is the primary server, to server A, which is the secondary server. Then, server A installs the new version of the SCADA web program on clients 1 and 3. In this state, only web browser 2_1 of client 2, whose primary server is server B, is connected to server B. The old version of the SCADA web program is running on web browser 2_1 of client 2.

[0102] In step S04, automatic updating of the remaining client 2 is initiated. First, the connection destination of the web browser 2_1 of client 2 is switched from server B, which is the primary server, to server A, which is the secondary server. Then, server A installs a new version of the SCADA web program on client 2. As a result, the SCADA web program of all clients is updated to the new version. During this time, server B is stopped for the version upgrade, and the new version of the SCADA web program is installed on server B.

[0103] In step S05, the upgraded server B is started. After the server B is started, the connection destination of the web browser 3_2 of the client 3 and the web browser 2_1 of the client 2 is returned to the upgraded server B. As a result, all the web browsers are now connected to the active primary server.

[0104] If automatic updates were performed on all clients simultaneously, operations on all clients would be temporarily interrupted. However, with the above automatic update method, by making good use of duplicated servers, it is possible to minimize interruptions to operations on clients.

[0105] 10 Web-based HMI subsystem 100 Client 110 Processor 120 Memory 121 Web browser 130 Storage 140 SCADA web program 160 Client program 161 Application launch program 162 Local web server 170 System configuration information 200 SCADA server 210 Processor 220 Memory 221 Web server 222 Communication driver 230 Storage 240 SCADA web program 250 Server program 260 Application content 262 System configuration information 270 Client installer 300 PLC 400 Application developer 410 Engineering tool 420 Application content 422 System configuration information 500 SCADA server installer

Claims

1. A client that operates a SCADA web program on a web browser, and a SCADA server connected to the client, wherein the SCADA server is configured to execute a SCADA server installer including an updated server program and an updated SCADA web program, and install the updated server program and the updated SCADA web program, and generate a client installer including an updated client program and the installed updated SCADA web program; the client is configured to check whether a program update number between the SCADA web program operating on the web browser and the SCADA web program installed on the SCADA server matches, and upon confirmation of a mismatch in the program update number, download the client installer from the SCADA server and terminate the web browser, execute the downloaded client installer to install the updated client program and the updated SCADA web program, and restart the web browser in conjunction with the execution of the client installer. A web-based HMI subsystem characterized by the above.

2. In the web-based HMI subsystem according to claim 1, the SCADA server is further configured to execute downloading updated application content. The client is further configured to check whether the content update numbers match between the application content used in the client and the application content on the SCADA server, and upon confirmation of a mismatch in the content update numbers, read the application content on the SCADA server into the SCADA web program, and restart the web browser in conjunction with the reading of the application content on the SCADA server. A web-based HMI subsystem characterized by this.

3. In the web-based HMI subsystem according to claim 1, the client program includes a local web server, and the client is configured to execute the local web server included in the client program installed in the client. The executed local web server is configured to download the client installer from the SCADA server and terminate the web browser upon confirmation of a mismatch in the program update numbers, and execute the downloaded client installer to install the updated client program and the updated SCADA web program. A web-based HMI subsystem characterized by this.

4. In the web-based HMI subsystem according to claim 3, the client program further includes an application startup program, the client installer further includes system configuration information, the client installer executes the application startup program included in the client program installed on the client, and the executed application startup program obtains information of the SCADA server that is the connection destination from the system configuration information, specifies an argument for loading and executing the SCADA web program after starting the web browser based on the information of the SCADA server, and restarts the web browser based on the specified argument. A web-based HMI subsystem characterized by being configured to perform the above.

5. In the web-based HMI subsystem according to claim 3, the executed local web server further checks whether the content update numbers match between the application content used by the client and the application content on the SCADA server, reads the application content on the SCADA server into the SCADA web program upon confirmation of a mismatch in the content update numbers, and further restarts the web browser in conjunction with the reading of the application content on the SCADA server. A web-based HMI subsystem characterized by being configured to perform the above.

6. In the web-based HMI subsystem according to any one of claims 1 to 5, the client further saves the current screen information before restarting the web browser, and restarts the web browser in the pre-restart screen state restored based on the saved screen information. A web-based HMI subsystem characterized by being configured to perform the above.

7. In the web-based HMI subsystem according to claim 1, the SCADA server includes a first SCADA server and a second SCADA server, and the client includes a first client connected to the first SCADA server and a second client connected to the second SCADA server. The first client is configured to switch the connection destination from the first SCADA server to the second SCADA server upon receiving the completion of the update preparation of the first SCADA server, switch the connection destination from the second SCADA server to the first SCADA server upon receiving that the first SCADA server has been restarted after the update of the SCADA web program, and download and install the updated SCADA web program from the first SCADA server. The second client is configured to switch the connection destination from the first SCADA server to the second SCADA server upon receiving the completion of the update preparation of the second SCADA server, download and install the updated SCADA web program from the first SCADA server, and switch the connection destination from the first SCADA server to the second SCADA server upon receiving that the second SCADA server has been restarted after the update of the SCADA web program. A web-based HMI subsystem characterized by the above is provided.

8. In the web-based HMI subsystem according to claim 7, the client further includes a third client having a first web browser connected to the first SCADA server and a second web browser connected to the second SCADA server. The third client is configured to: switch the connection destination of the first web browser from the first SCADA server to the second SCADA server upon receiving completion of the update preparation of the first SCADA server; switch the connection destinations of the first web browser and the second web browser from the second SCADA server to the first SCADA server upon receiving that the first SCADA server has been restarted after the update of the SCADA web program; download and install the updated SCADA web program from the first SCADA server; and switch the connection destination of the second web browser from the first SCADA server to the second SCADA server upon receiving that the second SCADA server has been restarted after the update of the SCADA web program. A web-based HMI subsystem characterized by being configured to perform the above.

9. A client installer generated by a SCADA server and executed by a client, comprising an installation program and program additional data added to the installation program. The program additional data includes a SCADA web program operating on the web browser of the client, a client program operating on the client, system configuration information for connecting to the SCADA server, and position information within the program file of the program additional data. The installation program is configured to separate the SCADA web program, the client program, and the system configuration information from the program file by referring to the position information, and deploy the separated SCADA web program, client program, and system configuration information on the client. A client installer characterized by being configured to perform the above.

10. The client installer according to claim 9, wherein the client program includes: a local web server that is a web server operating on the client and includes logic for automatically updating the SCADA web program on the client; and an application startup program that is a program for starting the web browser and is configured to specify, based on the information of the SCADA server included in the system configuration information, arguments for loading and executing the SCADA web program after the web browser is started. A client installer characterized by including the above.

Citation Information

Patent Citations

  • Moving image distribution system and moving image distribution method

    JP2014112911A