Web-based HMI subsystem and client installer
The web-based HMI subsystem addresses operational burdens by automating client installer updates and browser restarts, enhancing efficiency and reducing network strain in large-scale systems.
Patent Information
- Application Number
- JP2025508547
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-20
- Publication Date
- 2025-12-23
- Estimated Expiration
- 2043-12-20
AI Technical Summary
Large-scale web-based HMI subsystems face operational burdens due to the need for manual installation of client installers on multiple remote clients and the requirement to restart web browsers during updates, which can overwhelm communication networks and disrupt operations.
A web-based HMI subsystem that includes a client installer capable of automatic updates, utilizing a local web server and application launch program to manage program and content updates without manual intervention, and a mechanism to restart browsers smoothly while preserving operator context.
Reduces operational load by automating the installation and restart of web browsers and content updates, ensuring seamless transitions with minimal disruption to operators.
Smart Images

Figure 0007790630000001 
Figure 0007790630000002 
Figure 0007790630000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a web-based HMI subsystem and a client installer suitable for use therewith. [Background technology]
[0002] SCADA (Supervisory Control And Data Acquisition) is known as a system 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) The HMI is a mechanism that presents data of a target process (a monitored device) to an operator, enabling the operator to monitor and control the process. For example, Patent Document 1 discloses a SCADA HMI that has an HMI screen that runs on a SCADA client. (2) Monitoring and control system A supervisory control system collects signal data from the process and sends control commands to the process. A supervisory control system is configured, for example, with 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) Communications infrastructure The communications infrastructure connects the monitoring and control system with remote input / output devices.
[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 has the following advantages: (1) Web browsers are installed on many terminal devices, such as personal computers and tablet PCs, so a variety of terminal devices can be used as SCADA HMI subsystems. (2) Web browsers have sophisticated rendering capabilities, making it easy to create advanced GUI interaction functions, including animations. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Republished Patent No. 2021-070315 Summary of the Invention [Problem to be solved by the invention]
[0006] In large-scale web-based HMI subsystems, to reduce communication loads, web servers are 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] With the above method, the 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 large operational load can become a problem. Also, because the application content is distributed to the SCADA server, there is no need to run the client installer even when the application content is updated, 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 large operational load 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. [Means for solving the problem]
[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, a 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 confirmed, 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 addition to 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 match between the application content used by the client and the application content on the SCADA server. 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 obtains information about the SCADA server to which the client is connected from the system configuration information. Then, the executed application launch program 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 checking that the content update numbers do not match, 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 loading 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] A web-based HMI subsystem according to a 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 according to the seventh aspect of the present disclosure, the client includes 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 the first SCADA server has completed preparation for updating the SCADA web program. Then, when the first SCADA server has been 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, the second client changes the connection destination to the first SCADA server upon completion of the update preparation of the second SCADA server. two From the SCADA server one The second client then switches to the SCADA server. The second client then downloads and installs the updated SCADA web program from the first SCADA server. Furthermore, the second client switches its connection from the first SCADA server to the second SCADA server after the second SCADA server has been restarted after updating the SCADA web program.
[0027] A web-based HMI subsystem according to an eighth aspect of the present disclosure may be the web-based HMI subsystem according to the seventh aspect, further configured as follows.
[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, and includes an installation program and program additional data 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. The program-ancillary data also includes a client program that runs on the client. The program-ancillary data also includes system configuration information for connecting to a SCADA server. The program-ancillary data also includes 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 location information to separate a SCADA web program, a client program, and system configuration information from a program file, and then deploys the separated SCADA web program, client program, and system configuration information on a 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. [Effects of the Invention]
[0035] As described above, a web-based HMI subsystem according to one aspect of the present disclosure can reduce operational load by automatically executing a client installer on a client and automatically restarting a web browser when a SCADA web program is updated. Furthermore, a web-based HMI subsystem according to another aspect of the present disclosure can reduce operational load by automatically restarting a web browser on a client when application content is updated. A client installer according to yet another aspect of the present disclosure can deploy updated programs and information, including SCADA web programs, on a client without requiring a compiler. [Brief explanation of the drawings]
[0036] [Figure 1] 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. [Figure 2] FIG. 1 is a diagram showing the configuration of a first proposed web-based HMI subsystem considered during the development process of the present disclosure. [Figure 3] FIG. 10 is a diagram showing the configuration of a second proposed web-based HMI subsystem considered during the development process of the present disclosure. [Figure 4] FIG. 1 illustrates a configuration of a web-based HMI subsystem according to an embodiment of the present disclosure. [Figure 5] FIG. 10 is a diagram illustrating a program file configuration of a client installer according to an embodiment of the present disclosure. [Figure 6] FIG. 10 is a diagram illustrating a flow of automatic update of a client according to an embodiment of the present disclosure. [Figure 7] FIG. 1 is a diagram for explaining a method for checking the version of a SCADA web program according to an embodiment of the present disclosure. [Figure 8] FIG. 10 is a diagram for explaining a method for revision checking application content according to an embodiment of the present disclosure. [Figure 9]FIG. 10 is a diagram for explaining the flow of automatic update of a client in a server duplex system according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[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. Large-scale SCADA HMI system configuration 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 via 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 an HMI screen on which parts that display the status of a plant are arranged, for example, and changes the display of the HMI screen in accordance with the display signal data distributed from the client management unit 221.
[0040] 2. Web-based HMI Subsystem Configuration 2-1. First proposal web-based HMI subsystem Before describing the web-based HMI subsystem according to the embodiment of the present disclosure, two ideas 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 equipped with 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 on the SCADA server 200. A SCADA server installer 500 is used for the installation. By installing and executing the SCADA server installer 500 on 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 starts operating.
[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 on 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] SCADA web program for 100 clients 140 loads application content 260 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 reads the application content 260 in accordance with the PLC signal data received from the PLC 300. 260 The screen is updated using the PLC, and PLC control commands are sent to the SCADA server 200 according to the operator's operations.
[0047] Application content used in the web browser 121 is developed by an application development machine 400. Application content 420 developed by the application development machine 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 will communicate with approximately 100 PLCs 300 via the SCADA server 200. In this case, the communication bandwidth will be used up to nearly the upper limit of its performance by communicating PLC signal data and PLC control commands, and there is a risk that the SCADA web program 140 will not be able to be loaded from the SCADA server 200 to the client 100 due to the performance limits 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 as a system to solve these problems.
[0050] 2-2. Web-based HMI subsystem of the second proposal 3 is a diagram showing the configuration of the web-based HMI subsystem 10-2 of the second proposed solution. 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 locally on each client 100. In addition, in the web-based HMI subsystem 10-2 of the second proposal, a local web server 151 is deployed on the memory 120 of the client 100 together with a web browser 121. 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] Updated client program 150 is loaded into memory 120, causing updated local web server 151 to operate. Then, updated SCADA web program 140 is loaded into memory 120 by local web server 151, thereby updating SCADA web program 140 running on web browser 121. In this way, in web-based HMI subsystem 10-2 of the second proposal, SCADA web program 140 running on web browser 121 is not loaded from web server 221, but is installed directly on client 100 for 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. The SCADA server 200 also launches a web browser to access the application content. 260 This is because there are cases where the following is operated.
[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, with the web-based HMI subsystem 10-2 of the second proposal, an operator must 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 distant locations. Therefore, with 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] 2-3. Web-based HMI subsystem according to this embodiment 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 SCADA web programs 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 on 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 the SCADA web program 240 The server program 250 that runs the web server 221 is also included.
[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 for the client 100 to connect to the SCADA server 200. When the client 100 can connect to multiple SCADA servers, for example, the primary server 260a is selected as the connection target. and Se If the system has a SCADA server, the system configuration information includes information about each SCADA server (such as its host name and IP address). 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 to it. 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 at 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 the 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 launcher 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] Application launch program 161 is launched by execution of client installer 270. Application launch program 161 is a program that launches web browser 121. After launching web browser 121, application launch program 161 specifies a launch argument for web browser 121 so that SCADA web program 140 is loaded and executed. In addition, application launch program 161 obtains information about the destination server from system configuration information 170, checks the status of the destination server, and determines the timing for launching web browser 121.
[0065] If the SCADA server 200 connected to one client 100 is duplicated, the application launch program 161 checks the status of the server, first the primary server and then the secondary server. The application launch program 161 then specifies the SCADA server 200 that is ready as the connection destination server in the launch 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 launch program 161 delays the launch of the web browser 121 until one of the servers is running.
[0066] In the web-based HMI subsystem 10 according to this embodiment configured as described above, updates to the SCADA web program and 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. Client installer program file structure 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. FIG.
[0068] The client installer 270 is an executable 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 the SCADA web program 240, the client program 280, the system configuration information 262, and BeautyProgram additional data location information 290 The client program 280 includes a local web server 282 and an application launcher 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 to separate 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. How to automatically update the client 3-1. Client automatic update process 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 the 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, the flow F01 shown in Fig. 6 is executed. Each process defined in the 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 in 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 in 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 automatic client updates 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 client installer 270. Next, in step S202, installation program 271 is executed. Execution of installation program 271 updates SCADA web program 140, client program 160, and system configuration information 170 on client 100. Then, in step S203, application launch program 161 included in client program 160 is launched. Launching application launch program 161 ends the processing of client installer 270 defined in flow F02.
[0080] When the application startup program 161 is started in step S203 of the flow F02, the flow F03 shown in Fig. 6 is executed. Each process defined in the 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. With the restart of web browser 121, the processing of application launch program 161 defined in flow F03 ends.
[0082] 3-2. How to check the version of the SCADA web program A version check of the SCADA web program is performed in step S101 of the flow F01 shown in Fig. 6. The version check method will be described in detail 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 code 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 in the client 100.
[0085] At time TB, which is later than time TA, a version upgrade of SCADA server 200 is performed. In this version upgrade, SCADA server installer 500_N+1 of version N+1 is executed, thereby installing SCADA web program 240_N+1 and server program 250_N+1 in SCADA server 200. As a result, a mismatch in version numbers occurs between SCADA web program 140_N installed in client 100 and SCADA web program 240_N+1 installed in SCADA server 200.
[0086] In response to the mismatch in version numbers, at time TC, client 100 is upgraded. In this upgrade, first, 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, whereby SCADA web program 140_N+1 having version number N+1 is installed on client 100.
[0087] After the installation of SCADA web program 140_N+1, execution of application launch program 161 included in updated client program 160_N+1 is required to complete the update of client 100. When application launch program 161 is executed, web browser 121 is forcibly restarted. However, if 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 application launch program 161, a pop-up message such as "The SCADA system has been updated" may be displayed on the screen of client 100 to alert the operator.
[0088] 3-3. How to check the revision of application content A revision check of the application content is performed in step S102 of flow F01 shown in Fig. 6. The revision check method will be described in detail 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 symbol indicate the revision number. For example, application content 190_N means application content 190 with revision number N.
[0090] First, at time TD in Fig. 8, the revision number of application content 190_N used by client 100 is N. The revision number of application content 260_N downloaded to SCADA server 200 is also N. Since the revision numbers of both are the same, there is no need to update application content 190_N of client 100.
[0091] At time TE, which is later than time TD, the application content 260_N is revised up in the SCADA server 200. In this revision up, the application content 420_N+1 of revision N+1, which was developed by the application development machine 400, is downloaded to the SCADA server 200 by the engineering tool 410. As a result, the application content 260_N of revision number N is updated to the application content 260_N+1 of revision number N+1 in the SCADA server 200. As a result, the client 10 0 A mismatch in revision number occurs between the application content 190_N used in the application program and the application content 260_N+1 downloaded to the SCADA server 200.
[0092] In response to the discrepancy 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 application content 260 requires restarting web browser 121. However, if web browser 121 is suddenly restarted while the operator is working, the operator may be surprised and inconvenienced. Therefore, prior to restarting web browser 121, a pop-up message such as "Application has been updated" may be displayed on the screen of client 100 to alert the operator.
[0094] 4. Save the screen when restarting the web browser 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 of the client 100 is updated, 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. How to automatically update clients 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 with duplicated SCADA servers is called a server duplication system. Figure 9 is a diagram for explaining the flow of automatic client updates in the server duplication system according to this embodiment.
[0097] In the example shown in Figure 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, for Web Browser 3_1, Server A is the primary server and Server B is the secondary server, while for Web Browser 3_2, Server B is the primary server and Server A is the secondary server.
[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 running server A. Web browser 3_2 of client 3 and web browser 2_1 of client 2 are connected to the running 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 update of the client is started. First, the connection destination of the web browser 1_1 of the client 1 and the web browser 3_1 of the client 3 is switched from the primary server, Server A, to the secondary server, Server B. 2 The connection destination of web browser 2_1 on client 2 remains server B, the primary server. Then, server A is stopped for a version upgrade, and a new version of the SCADA web program is installed on server A. In this state, the SCADA web programs on 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 the web browser 1_1 of Client 1 and the web browser 3_1 of Client 3 is returned to the upgraded Server A. Furthermore, the connection destination of the web browser 3_2 of Client 3 is also switched from Server B, the primary server, to Server A, the secondary server. Then, Server A installs the new version of the SCADA web program on Client 1 and Client 3. In this state, only the 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 the web browser 2_1 of Client 2.
[0102] In step S04, the automatic update 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 the 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 to perform 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 Server B is started, the connection destination of the web browser 3_2 of Client 3 and the web browser 2_1 of Client 2 is returned to the upgraded Server B. As a result, all 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. [Explanation of symbols]
[0105] 10 Web-based HMI Subsystem 100 clients 110 processors 120 memory 121 Web Browser 130 Storage 140 SCADA web program 160 Client Programs 161 Application Launcher 162 Local Web Server 170 System Configuration Information 200 SCADA servers 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 Development Machine 410 Engineering Tools 420 Application Content 422 System Configuration Information 500 SCADA Server Installer
Claims
1. a client that runs a SCADA web program on a web browser; a SCADA server connected to the client; The SCADA server Executing a SCADA server installer including an updated server program and an updated SCADA web program to install the updated server program and the updated SCADA web program; generating a client installer including the updated client program and the updated SCADA web program installed; The client: Verifying whether the program update numbers of the SCADA web program running on the web browser and the SCADA web program installed on the SCADA server match; downloading the client installer from the SCADA server and closing the web browser in response to the confirmation of the program update number mismatch; Executing the downloaded client installer to install the updated client program and the updated SCADA web program; restarting the web browser in conjunction with execution of the client installer. A web-based HMI subsystem comprising:
2. 2. The web-based HMI subsystem of claim 1, The SCADA server downloading updated application content; The client: Verifying whether content update numbers match between the application content used on the client and the application content on the SCADA server; reading the application content on the SCADA server into the SCADA web program upon confirmation of the mismatch in the content update numbers; and restarting the web browser in conjunction with loading application content on the SCADA server. A web-based HMI subsystem comprising:
3. 2. The web-based HMI subsystem of claim 1, the client program includes a local web server; the client is configured to execute a local web server included in a client program installed on the client; The executed local web server downloading the client installer from the SCADA server and closing the web browser in response to the confirmation of the program update number mismatch; and executing the downloaded client installer to install the updated client program and the updated SCADA web program. A web-based HMI subsystem comprising:
4. 4. The web-based HMI subsystem of claim 3, the client program further includes an application launcher; the client installer further includes system configuration information; the client installer executes an application launcher program included in the client program installed on the client; The executed application launch program acquiring information about the SCADA server to which the connection is to be made from the system configuration information; Specifying arguments for loading and executing the SCADA web program after launching the web browser based on information about the SCADA server; and restarting the web browser based on the specified arguments. A web-based HMI subsystem comprising:
5. 4. The web-based HMI subsystem of claim 3, The executed local web server Verifying whether content update numbers match between the application content used on the client and the application content on the SCADA server; reading the application content on the SCADA server into the SCADA web program upon confirmation of the mismatch in the content update numbers; and restarting the web browser in conjunction with loading application content on the SCADA server. A web-based HMI subsystem comprising:
6. 6. A web-based HMI subsystem according to any one of claims 1 to 5, The client: saving current screen information before restarting the web browser; restarting the web browser in a screen state before the restart that is restored based on the saved screen information. A web-based HMI subsystem comprising:
7. 2. The web-based HMI subsystem of claim 1, the SCADA servers include a first SCADA server and a second SCADA server; The client a first client connected to the first SCADA server; a second client connected to the second SCADA server; The first client: Switching the connection destination from the first SCADA server to the second SCADA server upon completion of update preparation of the first SCADA server; Switching the connection destination from the second SCADA server to the first SCADA server in response to the first SCADA server being restarted after updating the SCADA web program; downloading and installing the updated SCADA web program from the first SCADA server; The second client: Switching the connection destination from the second SCADA server to the first SCADA server upon completion of update preparation of the second SCADA server; downloading and installing the updated SCADA web program from the first SCADA server; and switching the connection destination from the first SCADA server to the second SCADA server when the second SCADA server is restarted after updating the SCADA web program. A web-based HMI subsystem comprising:
8. 8. The web-based HMI subsystem of claim 7, the clients further include 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: Switching the connection destination of the first web browser from the first SCADA server to the second SCADA server upon completion of the update preparation of the first SCADA server; Switching the connection destination of the first web browser and the second web browser from the second SCADA server to the first SCADA server in response to the first SCADA server being restarted after updating the SCADA web program; downloading and installing the updated SCADA web program from the first SCADA server; and switching the connection destination of the second web browser from the first SCADA server to the second SCADA server in response to the second SCADA server being restarted after updating the SCADA web program. A web-based HMI subsystem comprising:
9. A client installer generated by a SCADA server and executed by a client, The installation program and program additional data to be added to the installation program; The program additional data is a SCADA web program running on a web browser of the client; a client program running on the client; System configuration information for connecting to the SCADA server; location information of the program additional data within the program file; The installation program Separating the SCADA web program, the client program, and the system configuration information from the program files with reference to the location information; and deploying the separated SCADA web program, the client program, and the system configuration information on the client. A client installer characterized by:
10. 10. The client installer of claim 9, The client program a local web server running on the client, the local web server including logic that causes the client to automatically update the SCADA web program; an application startup program that starts the web browser and is configured to specify arguments for loading and executing the SCADA web program after the web browser is started based on information about the SCADA server included in the system configuration information. A client installer characterized by:
Citation Information
Patent Citations
Installation program and device, and installation method of software
JP2006085610A
Method and apparatus for reducing communication system downtime when configuring a crytographic system of the communication system
US20100158251A1
Network management device and method for discovering and managing network connected databases
US20170085438A1
Scada web HMI system
WO2021070315A1