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

Scadaウェブhmiシステム Download PDF

Info

Publication number
JP6888739B1
JP6888739B1 JP2020513675A JP2020513675A JP6888739B1 JP 6888739 B1 JP6888739 B1 JP 6888739B1 JP 2020513675 A JP2020513675 A JP 2020513675A JP 2020513675 A JP2020513675 A JP 2020513675A JP 6888739 B1 JP6888739 B1 JP 6888739B1
Authority
JP
Japan
Prior art keywords
server
hmi
web
client
connection priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020513675A
Other languages
English (en)
Other versions
JPWO2021070315A1 (ja
Inventor
諒介 東谷
諒介 東谷
章 野島
章 野島
伸夫 清水
伸夫 清水
清水 亮
亮 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Mitsubishi Electric Industrial Systems Corp
Original Assignee
Toshiba Mitsubishi Electric Industrial Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Mitsubishi Electric Industrial Systems Corp filed Critical Toshiba Mitsubishi Electric Industrial Systems Corp
Application granted granted Critical
Publication of JP6888739B1 publication Critical patent/JP6888739B1/ja
Publication of JPWO2021070315A1 publication Critical patent/JPWO2021070315A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32404Scada supervisory control and data acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

SCADAウェブHMIシステムは、ウェブHMIサーバからHMIクライアントへ、負荷分散を考慮した割り当て順に従って、サーバ接続優先順リストを動的に配信する。そのため、HMIクライアントには予め接続優先順に関する設定が不要である。また、サーバ接続優先順リストは、負荷分散を考慮した割り当て順に従って各HMIクライアントに割り当てられるため、各ウェブHMIサーバに接続するクライアントの数が均等になり負荷分散が図られる。SCADAウェブHMIシステムは、サーバの冗長化と負荷分散とを図りつつ、クライアント設定に要する運用コストを低減できる。

Description

本発明は、冗長化構成を備えたSCADAウェブHMIシステムに関する。
SCADA(Supervisory Control And Data Acquisition)は、社会インフラシステムを監視制御する仕組みとして知られている。社会インフラシステムは、鉄鋼圧延システム、電力送変電システム、上下水道処理システム、ビル管理システム、道路システムなどである。
SCADAは、産業制御システムの一種であり、コンピュータによるシステム監視とプロセス制御を行う。SCADAでは、システムの処理性能に合わせた即応性(リアルタイム性)が必要である。
SCADAは一般に次のようなサブシステムから構成される。
(1)HMI(Human Machine Interface)
HMIは、対象プロセス(監視対象装置)のデータをオペレータに提示し、オペレータがプロセスを監視し制御できるようにする機構である。例えば特許文献1には、SCADAクライアント上で動作するHMI画面を備えるSCADA HMIが開示されている。
(2)監視制御システム
監視制御システムは、プロセス上の信号データを収集し、プロセスに対して制御コマンドを送る。PLC(Programable Logic Controller)などによって構成される。
(3)遠方入出力装置(Remote Input Output:RIO)
遠方入出力装置は、プロセス内に設置されたセンサと接続し、センサの信号をデジタルのデータに変換し、そのデジタルデータを監視制御システムに送る。
(4)通信基盤
通信基盤は、監視制御システムと遠方入出力装置を接続する。
日本特開2017−27211号公報
特許文献1におけるHMIサブシステムのクライアントプログラムは、マシン環境に依存したプログラムで構築されている。SCADA HMIサブシステムの低コスト化を実現するため、本願発明者は、マシン環境に依存しないブラウザベースのHMIサブシステムを開発するに至った。
SCADA HMIサブシステムをウェブブラウザ上で動作するウェブアプリケーションとして構築した場合、以下の利点がある。
(1)ウェブブラウザは、パーソナルコンピュータ、タブレットPCなどの多くの端末機器に搭載されているため、様々な端末機器をSCADA HMIサブシステムとして利用可能である。
(2)ウェブブラウザは、高機能なレンダリング機能を有しており、アニメーションをはじめとする高度なGUIインタラクション機能を作り込み易い。
ところで、SCADA HMIサブシステムでは、高信頼性を実現するために、サーバの冗長化構成が必要である。冗長化構成とは、サーバを多重化して、接続優先順位が高いサーバが故障した場合に、接続優先順位が低いサーバが処理を引き継ぐフェイルオーバを実行して、運用を継続する仕組みである。
冗長化構成には、アクティブ/スタンバイ構成とアクティブ/アクティブ構成がある。アクティブ/スタンバイ構成は、稼働系サーバ(プライマリサーバ)と待機系サーバ(セカンダリサーバ)を備え、プライマリサーバが故障した場合に、セカンダリサーバが稼働して処理を引き継ぐ。
アクティブ/アクティブ構成は、すべての系統を常に稼働しておき、処理を分散させて各サーバの負荷を軽減する。クライアントごとに、プライマリサーバとセカンダリサーバが個別に設定される。
本発明は、アクティブ/アクティブ構成に関する。この構成の問題点は、クライアントごとにプライマリサーバとセカンダリサーバを設定し、システム全体として、各サーバの負荷が均等になるように管理しなければならない点である。
例えば、サーバ2台(S1、S2)と、クライアント6台(C1、C2、C3、C4、C5、C6)のシステム構成を例に説明する。C1、C2、C3には、S1をプライマリサーバ、S2をセカンダリサーバとして定める設定がされている。C4、C5、C6には、S2をプライマリサーバ、S1をセカンダリサーバとして定める設定がされている。サーバ2台、クライアント6台のすべての機器が稼働している場合には、2台のサーバの負荷は、それぞれクライアント3台ずつで均等である。
しかしながら、クライアントの一部(C5、C6)が運用されない場合もある。この場合には、S1の負荷はクライアント3台分、S2の負荷はクライアント1台分となり、サーバの負荷バランスが崩れてしまう。そうかといって、クライアントの運用状況に合わせて、クライアントの設定を毎回変更するのでは、運用コストが増大してしまう。
サーバの負荷バランスに合わせて、クライアントの接続先サーバを動的に切り替える方式も考えられる。しかし、フェイルオーバは、負荷の高い動作であり、オペレータの操作も一時的に中断されるという問題がある。そのため、接続先サーバの切り替えは、サーバ故障時に限定して行われるべきである。
本発明は、上述の課題を解決するためになされた。本発明の目的は、サーバの冗長化と負荷分散とを図りつつ、クライアント設定に要する運用コストを低減できるSCADAウェブHMIシステムを提供することである。
上記目的の達成のため、本発明に係るSCADAウェブHMIシステムは以下のように構成される。
SCADAウェブHMIシステムは、複数のHMIクライアントと、複数のウェブHMIサーバとを備える。各HMIクライアントは、プラントの状態を表示するパーツが配置されたヒューマンマシンインターフェース(HMI)画面を表示するウェブブラウザを実行する。各ウェブHMIサーバは、プログラマブルロジックコントローラに接続し、前記プログラマブルロジックコントローラから受信したPLC信号に応じて前記パーツの状態を更新する表示信号を前記ウェブブラウザへ送信する。前記複数のウェブHMIサーバのうち少なくとも2つは、同一のサーバグループに属する。
各前記ウェブHMIサーバは、少なくとも一つのプロセッサと、プログラムを記憶するメモリとを備える。前記プログラムは、前記少なくとも一つのプロセッサにより実行されることで、前記少なくとも一つのプロセッサに、以下の処理を含む処理を実行させる。
テーブル共有処理は、サーバ接続優先順リストテーブルを前記サーバグループに属するすべての前記ウェブHMIサーバ間で共有する。
接続優先順リスト送信処理は、前記HMIクライアントからリスト要求信号を受信した場合に、前記サーバ接続優先順リストテーブルに定められた割り当て順に従って、前記サーバグループに属するすべての前記ウェブHMIサーバの接続優先順を定めたサーバ接続優先順リストを送信する。
前記サーバ接続優先順リストテーブルは、複数の前記サーバ接続優先順リストのそれぞれについて、前記サーバグループに属する各前記ウェブHMIサーバに接続する前記HMIクライアントの数を均等に近づけるように前記割り当て順を定める。
各前記HMIクライアントは、少なくとも一つのプロセッサと、プログラムを記憶するメモリとを備える。前記プログラムは、前記少なくとも一つのプロセッサにより実行されることで、前記少なくとも一つのプロセッサに、以下の処理を含む処理を実行させる。
死活監視処理は、前記サーバグループに属するすべての前記ウェブHMIサーバの稼働状態を監視する。
接続優先順リスト要求処理は、前記サーバグループに属するいずれか1つの前記ウェブHMIサーバへ、前記サーバ接続優先順リストを要求するための前記リスト要求信号を送信する。
サーバ接続処理は、前記サーバ接続優先順リストを受信した場合に、前記サーバグループに属する少なくとも1つの稼働中の前記ウェブHMIサーバのうち、前記サーバ接続優先順リストに定められた接続優先順位が最も高い前記ウェブHMIサーバとコネクションを確立する。
フェイルオーバ処理は、現在接続中の前記ウェブHMIサーバが非稼働状態となった場合に、前記サーバグループに属する少なくとも1つの稼働中の前記ウェブHMIサーバのうち、前記サーバ接続優先順リストに定められた接続優先順位が最も高い前記ウェブHMIサーバへコネクションを切り替える。
好ましくは、各前記HMIクライアントは、さらに以下の処理を実行する。
サーバグループ情報要求処理は、対象サーバ名を含むURLにより指定された前記ウェブHMIサーバである対象ウェブHMIサーバへ、前記サーバグループが定められたサーバグループ情報を要求するためのサーバグループ情報要求信号を送信する。
クライアント認証情報送信処理は、前記HMIクライアントのアカウント名とパスワードを含むクライアント認証情報を送信する。
インストーラ実行確認処理は、前記対象ウェブHMIサーバから前記ウェブブラウザへ、疑似シンクライアントインストーラをダウンロードし、前記疑似シンクライアントインストーラを実行するための通知バーを表示する。
権限昇格処理は、前記通知バーに対して前記疑似シンクライアントインストーラの実行を許可する操作がされた場合に、前記HMIクライアントの管理者権限を付与するための権限昇格ダイアログを表示する。
共有フォルダ作成処理は、前記権限昇格ダイアログに対して権限昇格を許可する操作がされた場合に、前記ウェブHMIサーバから前記クライアント認証情報が入力されることで前記ウェブHMIサーバからアクセス可能な共有フォルダを作成する。
常駐プロセス設定処理は、クライアント常駐プログラムを前記ウェブHMIサーバから前記共有フォルダへコピーし、前記共有フォルダに書き込まれた前記クライアント認証情報を用いて前記クライアント常駐プログラムを常駐プロセスとして設定する。
好ましくは、各前記ウェブHMIサーバは、さらに以下の処理を実行する。
サーバグループ情報書込処理は、前記サーバグループ情報要求信号を受信した場合に、前記対象ウェブHMIサーバが属する前記サーバグループのすべてのサーバ名が定められた前記サーバグループ情報が前記共有フォルダに書き込まれるまで、前記サーバグループ情報の書き込みを繰り返す。
クライアント認証情報書込処理は、前記クライアント認証情報を受信した場合に、前記クライアント認証情報が前記共有フォルダに書き込まれるまで、前記クライアント認証情報の書き込みを繰り返す。
本発明によれば、ウェブHMIサーバからHMIクライアントへ、割り当て順に従って、サーバ接続優先順リストが動的に割り当てられる。そのため、HMIクライアントには予め接続優先順に関する設定が不要である。また、サーバ接続優先順リストは、負荷分散を考慮した割り当て順に従って各HMIクライアントに割り当てられるため、各ウェブHMIサーバに接続するクライアントの数は均等になり負荷分散が図られる。本発明のSCADAウェブHMIシステムは、サーバの冗長化と負荷分散とを図りつつ、クライアント設定に要する運用コストを低減できる。
本発明の実施の形態1におけるSCADAのシステム構成を説明するための図である。 本発明の実施の形態1におけるサーバグループ情報テーブルの一例を示す図である。 本発明の実施の形態1におけるHMIクライアントおよびウェブHMIサーバにおいて実行される処理について説明するためのブロック図である。 本発明の実施の形態1における疑似シンクライアントのインストールについて説明するための図である。 本発明の実施の形態1における疑似シンクライアントのインストール処理の流れについて説明するためのフローチャートである。 本発明の実施の形態1における疑似シンクライアントのインストール処理の流れについて説明するためのフローチャートである。 本発明の実施の形態1における疑似シンクライアントをインストールする過程でHMIクライアントのモニタに表示される画面の一例である。 本発明の実施の形態1における疑似シンクライアントをインストールする過程でHMIクライアントのモニタに表示される画面の一例である。 本発明の実施の形態1における疑似シンクライアントをインストールする過程でHMIクライアントのモニタに表示される画面の一例である。 本発明の実施の形態1におけるサーバ接続優先順リストテーブルの具体例を示す図である。 本発明の実施の形態1におけるサーバ接続優先順リストの配信処理の流れについて説明するためのフローチャートである。 本発明の実施の形態1におけるサーバ接続優先順リストの割り当て例を説明するための図である。 本発明の実施の形態1におけるサーバグループ情報テーブルの一例を示す図である。 本発明の実施の形態1におけるフェイルオーバ処理とフェイルバック処理の一例を示す図である。 HMIクライアントおよびウェブHMIサーバが有するハードウェア構成例を示すブロック図である。
本発明を実施するための形態について添付の図面に従って説明する。なお、各図中、同一または相当する部分には同一の符号が付される。当該部分の重複説明は適宜に簡略化ないし省略される。
実施の形態1.
<全体構成>
図1は、SCADAのシステム構成を説明するための図である。SCADAは、ヒューマンマシンインターフェース(HMI)1、監視制御システムとしてのプログラマブルロジックコントローラ(以下、PLC2と記す。)、通信基盤(図示省略)、RIO(図示省略)をサブシステムとして備える。SCADAは、PLC2またはRIOを介して監視対象装置(図示省略)に接続する。
PLC2(監視制御システム)、通信基盤、RIOに関する説明は、背景技術で述べた通りであるため省略する。監視対象装置は、監視制御対象のプラントを構成するセンサ、アクチュエータなどである。
HMI1(SCADAウェブHMIシステム)は、複数のSCADAウェブHMIサーバ装置(以下、ウェブHMIサーバと記す。)10と、複数のHMIクライアント端末(以下、HMIクライアントと記す。)20と、を備える。
複数のウェブHMIサーバ10は、コンピュータネットワークを介して複数のPLC2に接続する。各ウェブHMIサーバを区別する必要がない場合には単にウェブHMIサーバ10と記す。複数のウェブHMIサーバ10は、コンピュータネットワークを介して複数のHMIクライアント20に接続する。各HMIクライアントを区別する必要がない場合には単にHMIクライアント20と記す。HMIクライアント20は、ウェブブラウザ21を実行する。ウェブブラウザ21は、プラントの状態を表示するパーツが配置されたHMI画面を表示する。
ウェブHMIサーバ10は、後述する図15に示すように、少なくとも一つのプロセッサ100aと、ウェブサーバ11が実行する処理について記載されたプログラムを記憶するメモリ100bと、を備える。プログラムは、プロセッサ100aにより実行されることで、プロセッサ100aに、プログラムに記載された処理を実行させる。メモリ100bは、ROM、RAM、HDD、SSDなどを含む。
ウェブHMIサーバ10は、HMIサーバアプリケーションとしてのウェブサーバ11を実行する。ウェブHMIサーバ10は、PLC2から受信したPLC信号に応じて、HMI画面に配置されたパーツの状態を更新するための表示信号をウェブブラウザ21へ送信する。また、ウェブHMIサーバ10は、ウェブブラウザ21から制御コマンドを受信してPLC2へ送信する。
HMIクライアント20は、後述する図15に示すように、少なくとも一つのプロセッサ200aと、HMIクライアント20が実行する処理について記載されたプログラムを記憶するメモリ200bと、を備える。プログラムは、プロセッサ200aにより実行されることで、プロセッサ200aに、プログラムに記載された処理を実行させる。メモリ200bは、ROM、RAM、HDD、SSDなどを含む。プログラムは、ウェブブラウザ21、HMI制御処理22、クライアント制御処理23、ウェブサーバ24、常駐プロセス25を実行するためのデータを含む。
<疑似シンクライアント>
一般的なウェブアプリケーションでは、ウェブブラウザで動作するウェブコンテンツは、ウェブサーバから動的にロードされ動作する。そのため、クライアントには、ソフトウェアのインストールは不要である。そのため、ウェブアプリケーションのクライアントは、シンクライアントと呼ばれている。しかしながら、本実施形態に係るSCADA HMIのウェブアプリケーションでは、シンクライアントで運用することは難しい。以下、具体的に説明する。
ウェブブラウザ21上で動作するプログラムは、セキュリティの観点から動作制限がある。許される動作は、ウェブサーバとの通信とウェブブラウザ21上への表示だけである。つまり、メモリ200b(例えばハードディスク)上のファイルや、クライアントリソース26(例えばプリンタ)など、HMIクライアント20上のデバイスへの直接のアクセスは許可されない。
一方、SCADA HMIは、以下のような機能が必要となる。
(1)保守のため実行ログのディスクファイルへの書き込み
(2)プリンタへのアクセス
(3)実行マシン名の取得
(4)Windows(登録商標)アプリケーションの起動
こうしたクライアントデバイスへのアクセスを必要とする機能を実現するために、HMIクライアント20は、ウェブサーバ24上で常駐プロセス25(Windows(登録商標)サービス)を実行する。ウェブブラウザ21は、常駐プロセス25経由で、ウェブアプリケーションからは直接実行できないHMIクライアント20のデバイスにアクセスできる。
HMIクライアント20上で動作するウェブブラウザ21上では、HMI制御処理22とクライアント制御処理23が実行される。HMI制御処理22は、HMI制御プログラムの動作中のインスタンスである。HMI制御プログラムは、ウェブHMIサーバ10のウェブサーバ11からロードされ、ウェブHMIサーバ10のウェブサーバ11のドメインで動作する。クライアント制御処理23は、クライアント制御プログラムの動作中のインスタンスである。クライアント制御プログラムは、HMIクライアントのウェブサーバ24からロードされ、HMIクライアント20のウェブサーバ24のドメインで動作する。
これらのプログラムは、異なるドメインで動作するため、互いに別ドメインのデータを直接アクセスすることはできない。そのため、ドメイン間通信を使ってデータの交換が行われる。HMI制御プログラムは、PLC2を監視制御するSCADA HMIのメインプログラムである。クライアント制御プログラムは、クライアントデバイス(ディスク、プリンタなど)を常駐プロセス25経由でアクセスするプログラムで、HMI制御プログラムの指示により動作する。
常駐プロセス25とクライアント制御処理23は、HMIクライアント20のストレージ(メモリ200b)から読み込まれたプログラムのインスタンスである。そのため、ブラウザベースのHMIサブシステムの場合には、ウェブアプリケーションでありながら、一部のプログラムをHMIクライアント20にインストールする必要がある。そのため、本実施形態に係るクライアントを、インストールが全く不要なシンクライアントと区別するために、疑似シンクライアント(pseudo thin client)と称する。
HMIクライアント20の台数はウェブHMIサーバ10の台数に比べて多い。そのため、疑似シンクライアントのインストールに際して、HMIクライアント20ごとの固有の設定作業は無いことが望まれる。
そこで、本実施形態のSCADAウェブHMIシステムでは、サーバの冗長化と負荷分散を実現する上で、クライアント設定に要する運用コストの低減を図ることとした。具体的には、(1)疑似クライアントインストール時のサーバグループ情報の自動配信と、(2)HMIクライアント起動時のサーバ接続優先順リストの動的な配信と、を実現することとした。
<(1)疑似シンクライアントインストール時のサーバグループ情報の自動配信>
まず、サーバグループについて説明する。サーバグループは、サーバ冗長化を実現するためのサーバの集合である。同一のサーバグループに属するサーバ同士は、プライマリサーバとセカンダリサーバの関係を有する。サーバグループは、図2のようなサーバグループ情報テーブルで定義される。
図2において、同じSERVER GROUP IDを持つサーバが1つのサーバグループを構成する。HMIクライアント20は、いずれか1つのサーバグループに関連付けられる。HMIクライアント20は、関連付けられたサーバグループ内のどのウェブHMIサーバ10にも接続可能である。HMIクライアント20は、接続中のウェブHMIサーバ10が故障した場合に、サーバグループ内の別のサーバに接続を切り替えて運用を継続することが可能である(フェイルオーバ)。
次に、疑似シンクライアントのインストールについて説明する。ブラウザベースのSCADAウェブHMIシステムのクライアントは、シンクライアントではなく、疑似シンクライアントなので、インストール作業が必要である。本実施形態におけるインストール処理は、各HMIクライアントにサーバグループ情報が自動配信される点に特徴を有する。
本実施形態に係るシステムでは、ウェブブラウザ21を用いて、疑似シンクライアントをインストールする。疑似シンクライアントがインストールされるマシンとして、例えばWindows(登録商標)のプレインストールマシンを想定する。Windows(登録商標)のプレインストールマシンには、OSとウェブブラウザ(Internet Explorer(登録商標)またはMicrosoft Edge(登録商標)など)がインストールされている。HMIクライアント20において、ウェブブラウザ21が指定URLにアクセスすることで疑似シンクライアントのインストール処理が開始される。
図3〜図9を参照して、疑似シンクライアントのインストール処理について説明する。図3は、HMIクライアント20およびウェブHMIサーバ10において実行される処理について説明するためのブロック図である。図4は、疑似シンクライアントのインストールについて説明するための図である。図5および図6は、疑似シンクライアントのインストール処理の流れについて説明するためのフローチャートである。図7乃至図9は、疑似シンクライアントをインストールする過程でHMIクライアントのモニタに表示される画面の一例である。
まず、図5のステップS100において、ユーザは、ウェブブラウザ21のアドレスバー71(図7)にURL(Uniform Resource Locator)を入力する。このURLは、対象サーバ名とインストール用HTMLファイル14(図4)の名称「install.html」を含む。図7の例では、対象サーバ名は「SVR1」である。URLは、対象サーバ名に対応するウェブHMIサーバ10に送信される。
ステップS101において、ウェブHMIサーバ10は、HMIクライアント20へ「install.html」ファイルを送信する。
ステップS102において、ウェブブラウザ21は「install.html」ファイルを読み込み、図7に示す画面を表示する。
ステップS103において、ユーザは、クライアント認証情報を入力し、ウェブブラウザ21に表示された「はい」ボタンを押す。クライアント認証情報は、HMIクライアント20のアカウント名とパスワードを含む。
ステップS104において、ウェブブラウザ21は、ウェブHMIサーバ10へサーバグループ情報要求信号を送信する。具体的には、サーバグループ情報要求処理38(図3)は、対象サーバ名を含むURLにより指定されたウェブHMIサーバ10である対象ウェブHMIサーバへ、サーバグループを定めたサーバグループ情報を要求するサーバグループ情報要求信号を送信する。
また、ステップS104において、クライアント認証情報送信処理45(図3)は、ウェブHMIサーバ10へクライアント認証情報を送信する。
ステップS105において、ウェブHMIサーバ10は、サーバグループ情報要求信号とクライアント認証情報を受信する。クライアント認証情報29はメモリ100bに書き込まれる(図4)。サーバグループ情報書込処理30(図3)は、サーバグループ情報テーブル16(図4)から、自サーバ(対象ウェブHMIサーバ)が属するサーバグループのすべてのサーバ名が定められたサーバグループ情報を抽出する。
図2はサーバグループ情報テーブル16の一例である。図7の例のようにURLに対象ウェブHMIサーバ「SVR1」が指定されている場合、サーバグループ情報28(図4)は、SVR1と同一のサーバグループ(SERVER GROUP ID = 1)に属するSVR1とSVR2を含む。
ステップS106において、サーバグループ情報書込処理30は、ステップS105で抽出したサーバグループ情報28をHMIクライアント20のメモリ200b(例えばハードディスク)へ書き込む処理を試みる。この書き込み処理が成功するには、ウェブHMIサーバ10からアクセス可能な共有フォルダがメモリ200bに用意されている必要がある。未だ共有フォルダが用意されておらず、書き込み処理が失敗した場合は、一定時間後に再度ステップS106の処理を実行する(ステップS107)。すなわち、サーバグループ情報書込処理30は、ステップS105で抽出したサーバグループ情報28が共有フォルダに書き込まれるまで、サーバグループ情報28の書き込みを繰り返す。
また、ステップS107において、クライアント認証情報書込処理46は、ステップS105において受信したクライアント認証情報29が共有フォルダに書き込まれるまで、クライアント認証情報29の書き込みを繰り返す。
ステップS104の処理後、ステップS108において、インストーラ実行確認処理39(図3)は、対象ウェブHMIサーバからウェブブラウザ21へ、疑似シンクライアントインストーラ15(図4)をダウンロードする。その後、インストーラ実行確認処理39は、疑似シンクライアントインストーラ15を実行するための通知バー81(図8)を表示する。ウェブブラウザ21に表示された通知バー81には、実行ボタンが配置されている。図8の「clientInstaller.exe」は、疑似シンクライアントインストーラ15のファイル名である。疑似シンクライアントインストーラ15は実行ファイル(拡張子「.exe」)である。
ステップS109において、ユーザは、通知バー81に表示された実行ボタンを押す。
図5のステップS110において、疑似シンクライアントインストーラ15がHMIクライアント20上で実行される。
ステップS111において、疑似シンクライアントインストーラ15が実行されると、図8に示すユーザアカウント制御に関するダイアログボックスが表示される。疑似シンクライアントインストーラ15は、管理者権限で実行される必要がある。そのため、権限昇格処理40(図3)は、通知バー81に対して疑似シンクライアントインストーラ15の実行を許可する操作がされた場合に、HMIクライアント20の管理者権限を付与するための権限昇格ダイアログ91(図9)を表示する。権限昇格ダイアログ91に表示された「はい」ボタンが押されると、インストールが実行される。
ステップS112において、共有フォルダ作成処理42(図3)は、権限昇格ダイアログ91において権限昇格を許可する操作がなされた場合に、ウェブHMIサーバ10からアクセス可能な共有フォルダを作成する。共有フォルダ作成処理42は、疑似シンクライアントインストーラ15により実行される。
共有フォルダは、ウェブHMIサーバ10からクライアント認証情報29が入力されることにより、ウェブHMIサーバ10からアクセス可能となる。共有フォルダが設定されると、上述したステップS106においてサーバグループ情報28とクライアント認証情報29とがHMIクライアント20のメモリ200bへ書き込まれる。これによりステップS107の判定条件が成立し、サーバグループ情報28とクライアント認証情報29を共有フォルダへ書き込む処理は終了する。
ステップS113において、常駐プロセス設定処理43(図3)は、クライアント常駐プログラム17(図4)をウェブHMIサーバ10から共有フォルダへコピーする。常駐プロセス設定処理43は、疑似シンクライアントインストーラ15により実行される。疑似シンクライアントインストーラ15は、クライアント常駐プログラム17のインストールを開始する。
ステップS114において、常駐プロセス設定処理43は、クライアント常駐プログラム17を常駐プロセス25(図1)として設定する。クライアント常駐プログラム17は、常時バックグラウンドで実行されるWindows(登録商標)サービスとして設定される。ところで、クライアント常駐プログラム17をWindows(登録商標)サービスとして登録する際には、HMIクライアント20のアカウント名とパスワードが必要である。そこで、常駐プロセス設定処理43は、共有フォルダに書き込まれたクライアント認証情報29を用いて、クライアント常駐プログラム17を常駐プロセス25として設定する。
本実施形態によれば、ステップS103において入力されたクライアント認証情報は、(1)ウェブHMIサーバ10がHMIクライアント20の共有フォルダにアクセスするため、(2)HMIクライアント20がクライアント常駐プログラム17を常駐プロセス25(図1)として設定するため、の2つの用途に用いられる。すなわち、ステップS114において、ユーザはクライアント認証情報を再入力しなくてよいため、運用コストを低減できる。
上述した処理フローにより、疑似シンクライアントのインストール作業は完了する。上述したインストール作業では、URLに対象サーバ名が含まれる以外に、HMIクライアント20は、サーバ固有の設定を一切行っていない。また、疑似シンクライアントインストーラ15にサーバ固有の情報は含まれていない。本実施形態のシステムでは、サーバ固有の情報(サーバグループ情報)は、HMIクライアント20に共有フォルダが設定されるのを見計らって、自動的に配信される。そのため、HMIクライアント20毎に異なるサーバグループ情報を組み込んだインストーラを用意する必要がない。
ところで、疑似シンクライアントインストーラ15が、ウェブHMIサーバ10からHMIクライアント20へコピーするファイルは、ウェブHMIサーバ10に適切に配備されている必要がある。そこで、疑似シンクライアントインストーラ15が適切に動作するために、サーバインストーラ19は、必要なファイルをメモリ100b(例えばハードディスク)に配備する。
サーバインストーラ19は、メモリ100bに、サーバ情報配信プログラム13、インストール用HTMLファイル14、疑似シンクライアントインストーラ15、サーバグループ情報テーブル16、クライアント常駐プログラム17、サーバ接続優先順リストテーブル18を配備する。サーバ情報配信プログラム13は、ウェブサーバ11上で図3に示すサーバグループ情報書込処理30、テーブル共有処理31、接続優先順リスト送信処理32、テーブル管理処理44として実行される。また、サーバ情報配信プログラム13は、ウェブブラウザ21にロードされる上述したHMI制御プログラムを含む。
<(2)HMIクライアント起動時のサーバ接続優先順リストの動的な配信>
次に、インストール後のクライアント−サーバ接続処理と、サーバ接続優先順リストの動的な配信処理について説明する。
まず、サーバ接続優先順リストについて説明する。疑似シンクライアントのインストールが完了した時点で、各クライアントのサーバ接続優先順位は決定しない。つまり、各HMIクライアント20に対して、どのウェブHMIサーバ10がプライマリサーバで、どのウェブHMIサーバ10がセカンダリサーバか決定していない。サーバ接続優先順位は、HMIクライアント20がHMIアプリケーションを起動するときに、サーバ接続優先順リストを取得することで動的に決定される。
テーブル共有処理31(図3)は、サーバ接続優先順リストテーブル18をサーバグループに属するすべてのウェブHMIサーバ10間で共有する。サーバ接続優先順リストテーブル18(図4)は、複数のサーバ接続優先順リストのそれぞれについて、サーバグループに属する各ウェブHMIサーバ10に接続するHMIクライアント20の数を均等に近づけるように割り当て順を定める。サーバ接続優先順リストは、サーバグループに属するすべてのウェブHMIサーバ10の接続優先順を定める。サーバ接続優先順リストには、HMIクライアント20が接続するウェブHMIサーバが優先順に記載されている。
図10の(A)はサーバ数が2の場合のサーバ接続優先順リストテーブルである。
サーバ接続優先順リストテーブル18は、割り当て順と、サーバ接続優先順リストと、割り当て先クライアントと、接続中フラグと、最終接続時刻とを関連付けた情報が複数格納されたテーブルである(図12)。図9では、そのうち、割り当て順とサーバ接続優先順リストのみを表している。
2つのウェブHMIサーバ10は、第1ウェブHMIサーバ(SVR1)と第2ウェブHMIサーバ(SVR2)である。サーバ接続優先順リストテーブル18は、少なくとも1番目に接続するHMIクライアント20に割り当てられる第1サーバ接続優先順リストと、2番目に接続するHMIクライアント20に割り当てられる第2サーバ接続優先順リストとを含む。3番目以降に接続するHMIクライアント20には、第1サーバ接続優先順リストと第2サーバ接続優先順リストとが交互に割り当てられる。
第1サーバ接続優先順リストは、SVR1、SVR2の順に接続優先順が定められている。第2サーバ接続優先順リストは、SVR2、SVR1の順に接続優先順が定められている。
図10の(B)はサーバ数が3の場合のサーバ接続優先順リストテーブルである。3つのウェブHMIサーバ10は、第1ウェブHMIサーバ(SVR1)と第2ウェブHMIサーバ(SVR2)と第3ウェブHMIサーバ(SVR3)である。サーバ接続優先順リストテーブル18は、少なくとも1番目に接続するHMIクライアント20に割り当てられる第1サーバ接続優先順リストと、2番目に接続するHMIクライアント20に割り当てられる第2サーバ接続優先順リストと、3番目に接続するHMIクライアント20に割り当てられる第3サーバ接続優先順リストと、4番目に接続するHMIクライアント20に割り当てられる第4サーバ接続優先順リストと、5番目に接続するHMIクライアント20に割り当てられる第5サーバ接続優先順リストと、6番目に接続するHMIクライアント20に割り当てられる第6サーバ接続優先順リストと、とを含む。7番目以降に接続するHMIクライアント20には、第1から第6サーバ接続優先順リストまでが順番に割り当てられる。
第1サーバ接続優先順リストは、SVR1、SVR2、SVR3の順に接続優先順が定められている。第2サーバ接続優先順リストは、SVR2、SVR3、SVR1の順に接続優先順が定められている。第3サーバ接続優先順リストは、SVR3、SVR1、SVR2の順に接続優先順が定められている。第4サーバ接続優先順リストは、SVR1、SVR3、SVR2の順に接続優先順が定められている。第5サーバ接続優先順リストは、SVR2、SVR1、SVR3の順に接続優先順が定められている。第6サーバ接続優先順リストは、SVR3、SVR2、SVR1の順に接続優先順が定められている。
サーバ接続優先順リストテーブルを生成するアルゴリズムは次の通りである。
サーバ台数をnとしたときのサーバをSVR(i)とする(i=0,1,・・・,n−1)。
ここでiをこのサーバのサーバインデックスと呼ぶことにする。サーバSVRのサーバインデックスは、index(SVR)と表す。
以下の式が成り立つ。
index(SVR(i))=i
サーバ台数をnとしたときのk番目のサーバ接続優先順リストのi番目のサーバをS(n,k,i)とする。
ここで、
n>=2
k=0,1,・・・,n!−1
i=0,1,・・・,n−1
である。k<=n!−1であるのは、kがn!以上の場合は、kがn!以下の場合のサーバ接続優先順リストを繰り返し使えばよいからである。
m=(n!−1)×q+r (qは0以上の整数、r=0,1,・・・,n!−1)の場合は、S(n,m,i)=S(n,r,i)ということである。
n=2の場合は、以下のとおりである。
S(2,0,0)=SVR(0)
S(2,0,1)=SVR(1)
S(2,1,0)=SVR(1)
S(2,1,1)=SVR(0)
サーバ台数をn+1に拡張するために、P(n,k,i,b)を考える。これは、サーバ台数n+1の場合、サーバSVR(b)を起点にS(n,k,i)のサーバインデックス分だけシフトしたサーバを表す。厳密には以下のように定義される。
P(n,k,i,b)=SVR((b+index(S(n,k,i))+1)%(n+1))
ここで、x%yは、yを法としたxの剰余数を表す。例えば、4%3=1である。
また、それぞれの変数の範囲は、以下のとおりである。
n>=2
k=0,1,・・・,n!−1
i=0,1,・・・,n−1
b=0,1,・・・,n
例えば、n=2の場合には、以下のとおりである。
P(2,0,0,0)=SVR((0+0+1)%3)=SVR(1)
P(2,0,1,0)=SVR((0+1+1)%3)=SVR(2)
P(2,1,0,0)=SVR((0+1+1)%3)=SVR(2)
P(2,1,1,0)=SVR((0+0+1)%3)=SVR(1)
P(2,0,0,1)=SVR((1+0+1)%3)=SVR(2)
P(2,0,1,1)=SVR((1+1+1)%3)=SVR(0)
P(2,1,0,1)=SVR((1+1+1)%3)=SVR(0)
P(2,1,1,1)=SVR((1+0+1)%3)=SVR(2)
P(2,0,0,2)=SVR((2+0+1)%3)=SVR(0)
P(2,0,1,2)=SVR((2+1+1)%3)=SVR(1)
P(2,1,0,2)=SVR((2+1+1)%3)=SVR(1)
P(2,1,1,2)=SVR((2+0+1)%3)=SVR(0)
S(n+1,k,i)は、P(n,k,i,b)を使って表すことができる。
ここで、kの範囲は以下の通りである。
k=0,1,・・・,(n+1)!−1
したがって、k=(n+1)×q+rと表すことができる。
ここで、q、rの範囲は以下の通りである。
q=0,1,・・・,n!−1
r=0,1,・・・,n
i=0の場合、S(n+1,k,i)=SVR(r)
i=1,2,・・・,nの場合、S(n+1,k,i)=P(n,q,i−1,r)
P(n,k,i,b)の定義から、S(n+1,k,i)は、以下の漸化式で表すことができる。
n>=2の場合
k=(n+1)×q+rとすると、
i=0の場合、S(n+1,k,i)=SVR(r)
i=1,2,・・・,nの場合、S(n+1,k,i)=SVR((r+index(S(n,q,i−1))+1)%(n+1))
n=1の場合
S(n+1,0,0)=S(2,0,0)=SVR(0)
S(n+1,0,1)=S(2,0,1)=SVR(1)
S(n+1,1,0)=S(2,1,0)=SVR(1)
S(n+1,1,1)=S(2,1,1)=SVR(0)
この漸化式により、サーバ台数2以上の場合のすべてのサーバ接続優先順リストを求めることができる。
サーバ数nの場合のサーバ接続優先順リストテーブルは、サーバ数n−1の場合のサーバ接続優先順リストテーブルを元に生成できるので、サーバ数2の場合のサーバ接続優先順リストテーブルからサーバ数3、4、5、・・・の場合のサーバ接続優先順リストテーブルを順次生成できる。
リストの数kがn!以上の場合のサーバ接続優先順リストテーブルは、kがn!の場合のサーバ接続優先順リストテーブルから生成される。kがn!の場合のサーバ接続優先順リストテーブルを基本優先順リストテーブルと定義する。
基本優先順リストテーブルを一巡使うと、また基本優先順リストテーブルを最初から使い始めることにより、クライアント台数がいくら多くなってもリストを生成できる。
サーバ台数nの場合、基本優先順リストの数は、n!である。n=2の場合は、2!=2。n=3の場合は、3!=6となり、図10の結果と一致する。
リストの一番目に来るサーバは、サーバ台数nの場合、n通りであり、2番目からn番目までのサーバは、サーバ台数n−1の場合の基本優先順リストを先述の漸化式を用いてそれぞれ対応させることにより、n×((n−1)!)=n!個の基本優先順リストを生成できる。
ところで、サーバグループ内の複数のサーバが、同時にサーバ接続優先順リストテーブル18にアクセスした場合、異なるHMIクライアント20に同一のサーバ接続優先順リストを割り当てられてしまう可能性がある。この誤動作を防ぐため、サーバ接続優先順リストテーブル18の更新権は、サーバグループ内の一つのサーバが所有する。HMIクライアント20がサーバ接続優先順リストを要求した場合、そのサーバが、サーバ接続優先順リストテーブルの更新権を持っているときは、ただちに、新たなサーバ接続優先順リストを割り当て、サーバ接続優先順リストをHMIクライアント20へ送信する。一方、サーバ接続優先順リストテーブルの更新権を持っていないときは、そのサーバは、サーバ接続優先順リストテーブルを持っているサーバにサーバ接続優先順リストテーブルの更新権を要求する。そして、サーバ接続優先順リストテーブルの更新権を得た後に、サーバ接続優先順リストを割り当て、HMIクライアント20へ送信する。
図3、図11乃至図13を参照して、サーバ接続優先順リストを取得する手順について説明する。図3は、HMIクライアント20およびウェブHMIサーバ10において実行される処理について説明するためのブロック図である。図11は、サーバ接続優先順リストの配信処理の流れについて説明するためのフローチャートである。図12は、サーバ接続優先順リストの割り当て例を説明するための図である。図13は、サーバグループ情報テーブルの一例を示す図である。
HMIクライアント20は、起動すると、インストール時に取得したサーバグループ情報28(図4)に記載されたすべてのウェブHMIサーバ10の生死確認を行う。死活監視処理33(図3)は、サーバグループに属するすべてのウェブHMIサーバ10の稼働状態を監視する。この監視は、コネクションレス型通信(例えば、RESTプロトコル)を用いて行われる。
図11のステップS200において、接続優先順リスト要求処理34(図3)は、サーバグループに属するいずれか1つのウェブHMIサーバ10へ、サーバ接続優先順リストを要求するためのリスト要求信号を送信する。リスト要求信号をいずれのウェブHMIサーバ10に送信するかは周期的に変更される。リスト要求信号はコネクションレス型通信(例えば、RESTプロトコル)で送信される。
ステップS201において、ウェブHMIサーバ10は、要求元クライアントからリスト要求信号を受信する。要求元クライアントは、リスト要求信号を送信したHMIクライアント20である。
ステップS202において、ウェブHMIサーバ10は、自サーバがサーバ接続優先順リストテーブル18の更新権を有するかを判定する。上述したようにサーバ接続優先順リストテーブル18は、サーバグループに属するすべてのウェブHMIサーバ10間で共有されている(テーブル共有処理31)。
更新権を有する場合は、ステップS203の処理に進む。更新権を有さない場合は、更新権を有するウェブHMIサーバ10へ更新権を要求し、更新権を取得した後にステップS203の処理に進む。
ステップS203〜ステップS206において、接続優先順リスト送信処理32は、サーバ接続優先順リストテーブル18に定められた割り当て順に従って、サーバ接続優先順リストを送信する。サーバ接続優先順リストは、サーバグループに属するすべてのウェブHMIサーバ10の接続優先順を定める。
まず、ステップS203において、接続優先順リスト送信処理32は、サーバ接続優先順リストテーブル18に、要求元クライアントに対応するエントリがあるかを判定する。接続優先順リスト送信処理32は、サーバ接続優先順リストテーブル18の「割り当て先クライアント」欄に、要求元クライアントが登録されている場合に、エントリがあると判定する。エントリがある場合には、ステップS204の処理に進む。エントリがない場合には、ステップS205の処理に進む。
ステップS204において、接続優先順リスト送信処理32は、ステップS203で見つけられたエントリのサーバ接続優先順リストを再利用する。図13は、サーバ接続優先順リストテーブル18の一例である。図13の例では、2nd clientにCLIENT Eが既に割り当てられている。そのため、要求元クライアントがCLIENT Eである場合には、2nd clinetのサーバ接続優先順リストが再利用される。
ステップS205において、接続優先順リスト送信処理32は、アサインされていないエントリのうち割り当て順が最も早いエントリを要求元クライアントに割り当てる。
ステップS206において、接続優先順リスト送信処理32は、サーバ接続優先順リストを要求元クライアントへ送信する。送信時刻は、サーバ接続優先順リストテーブル18の「最終接続時刻」欄に記録される。
ステップS207において、要求元クライアントは、サーバ接続優先順リストを受信する。
ステップS208において、サーバ接続処理35は、サーバグループに属する少なくとも1つの稼働中のウェブHMIサーバ10のうち、サーバ接続優先順リストに定められた接続優先順位が最も高いウェブHMIサーバ10とコネクションを確立する。なお、ウェブHMIサーバ10の稼働状態は、サブルーチンである死活監視処理33により継続的に監視される。
ステップS208の処理によりコネクションが確立されたウェブHMIサーバ10は、サーバ接続優先順リストテーブル18の「最終接続時刻」欄をクリアする。
図12にサーバ接続優先順リストを取得する一例を示す。図12は、SVR1とSVR2が属するサーバグループに、クライアントA〜Dが接続する例を表している。破線121は、SVR1へのリスト要求信号とその応答信号を表す。破線122は、SVR2へのリスト要求信号とその応答信号を表す。HMIクライアント20は、リスト要求信号の送信先サーバを数秒毎に切り替える。そのため、クライアントAとBは、SVR1へリスト要求信号を送信しているが、クライアントCとDは、SVR2へリスト要求信号を送信している。
最初にクライアントAからリスト要求信号を受信すると、SVR1は、1番目の割り当て順に設定されたサーバ接続優先順リストをクライアントAに割り当てる。クライアントAは、優先順が最も高いSVR1との間に双方向通信可能なコネクション(実線123)を確立する。プロトコルとして例えばWebScoketが用いられる。
次にクライアントBからリスト要求信号を受信すると、SVR1は、2番目の割り当て順に設定されたサーバ接続優先順リストをクライアントBに割り当てる。クライアントBは、優先順が最も高いSVR2との間に双方向通信可能なコネクションを確立する。
次にクライアントCからリスト要求信号を受信すると、SVR2は、3番目の割り当て順に設定されたサーバ接続優先順リストをクライアントCに割り当てる。クライアントCは、優先順が最も高いSVR1との間に双方向通信可能なコネクションを確立する。
次にクライアントDからリスト要求信号を受信すると、SVR2は、4番目の割り当て順に設定されたサーバ接続優先順リストをクライアントDに割り当てる。クライアントDは、優先順が最も高いSVR2との間に双方向通信可能なコネクションを確立する。
以上説明したように、図11に示すクライアント起動時の処理によれば、HMIクライアント20は、ウェブHMIサーバ10から動的にサーバ接続優先順リストを取得できる。そのため、HMIクライアント20にサーバ接続優先順に関する事前設定は不要である。
また、負荷分散を考慮した割り当て順に従ってサーバ接続優先順リストがHMIクライアント20に配信されるため、HMIクライアント20に冗長化および負荷分散のための事前設定は不要である。また、事前設定が不要であるため、評価端末や一時的な監視のためにモバイル端末を使う場合であっても、本システムに接続可能である。
また、サーバ接続優先順リストは、HMIクライアント20がサーバグループに接続する時に動的に配信されるため、動作を停止しているHMIクライアント20は負荷分散の対象外となり、システム全体で稼働しているクライアントの総負荷が、サーバ間で均等に分散される。
なお、ウェブHMIサーバ10は、サーバ接続優先順リストテーブル18のエントリを管理するテーブル管理処理44を実行する。テーブル管理処理44は、クライアント−サーバ間の接続状態に応じてサーバ接続優先順リストテーブル18(図12)の「接続中フラグ」欄と「最終接続時刻」欄を更新する。テーブル管理処理44は、HMIクライアント20がウェブHMIサーバ10に接続した場合、接続中フラグを「接続中」に設定する。テーブル管理処理44は、HMIクライアント20とウェブHMIサーバ10との接続が切れると、接続フラグを「未接続」に設定するとともに、「最終接続時刻」を記録する。また、テーブル管理処理44は、サーバ接続優先順リストテーブル18の各エントリの最終接続時刻を周期的にチェックし、一定時間が経過しているか確認する。一定時間経過している場合はそのエントリは削除される。具体的には、そのエントリの「割り当て先クライアント」欄と、「接続中フラグ」欄と、「最終接続時刻」欄のデータがクリアされる。
<フェイルオーバ処理>
現在接続中のウェブHMIサーバ10が故障すると、HMIクライアント20はフェイルオーバ処理36を実行し、他のウェブHMIサーバ10に接続して運用を継続する。フェイルオーバ処理36は、現在接続中のウェブHMIサーバ10が非稼働状態となった場合に、サーバグループに属する少なくとも1つの稼働中のウェブHMIサーバ10のうち、サーバ接続優先順リストに定められた接続優先順位が最も高いウェブHMIサーバ10へコネクションを切り替える。HMIクライアント20は、死活監視処理33により、各ウェブHMIサーバ10の稼働状態を常に把握している。そのため、フェイルオーバ処理36は、稼働中のサーバへ即座にフェイルオーバすることができ、サーバ故障によるオペレーションへの影響を最小限に抑えることができる。
<フェイルバック処理>
ウェブHMIサーバ10が復旧した場合には、HMIクライアント20はフェイルバック処理37を実行する。フェイルバック処理37は、HMIクライアント20が現在接続しているウェブHMIサーバ10よりも高い接続優先順位のウェブHMIサーバ10が稼働している場合に、高い接続優先順位のウェブHMIサーバ10へコネクションを切り替える。HMIクライアント20は、死活監視処理33により、各ウェブHMIサーバ10の稼働状態を常に把握している。そのため、故障していたサーバが復旧したことを認識できる。復旧したサーバが現在接続しているサーバよりも接続優先順位が高い場合、復旧したサーバに即座にフェイルバックすることができる。これにより、サーバが復旧した場合でも最適な負荷分散を維持できる。
図14は、フェイルオーバ処理とフェイルバック処理の一例を示す図である。図14の(A)は、サーバグループに属するすべてのウェブHMIサーバ(S1、S2、S3)が稼働しており、HMIクライアント(C1−C9)がプライマリサーバに接続している状態を示す。図14の(B)は、S2が故障してフェイルオーバ処理36が実行された状態を示す。C2はセカンダリサーバであるS1に、C5とC8はセカンダリサーバであるS3に再接続する。図14の(C)は、S2が復旧してフェイルバック処理37が実行された状態を示す。C2、C5、C8は、プライマリサーバであるS2に再接続する。
また、HMIクライアント20は、フェイルオーバ処理36またはフェイルバック処理37を実行した場合に、PLC情報収集処理41を実行する。PLC情報収集処理41は、コネクションを切り替える前にウェブブラウザ21に表示されていたHMI画面に配置されたパーツの状態情報をPLC2から収集するように、コネクションを切り替えた後のウェブHMIサーバ10へ要求する。これによれば、ウェブブラウザ21は、フェイルオーバまたはフェイルバック直前にオープンしていたHMI画面に含まれるPLC2の信号データを再度取得できる。また、フェイルオーバ中に送信エラーとなったメッセージを再度取得できる。オペレータは、フェイルオーバまたはフェイルバック前の作業を切り替え後も継続して行うことが可能となる。
以上説明したように、本実施形態に係るSCADAウェブHMIシステムによれば、サーバの冗長化と負荷分散とを図りつつ、クライアント設定に要する運用コストを低減できる。
<ハードウェア構成例>
図15は、ウェブHMIサーバ10およびHMIクライアント20が有するハードウェア構成例を示すブロック図である。
上述したウェブHMIサーバ10の各処理は、処理回路により実現される。処理回路は、プロセッサ100aと、メモリ100bと、ネットワークインタフェース100cと、入力インタフェース100dと、少なくとも一つのディスプレイ100eが接続して構成されている。プロセッサ100aは、メモリ100bに記憶された各種プログラムを実行することにより、ウェブHMIサーバ10の各機能を実現する。メモリ100bは、ROM、RAM、HDD、SSDなどを含む。ネットワークインタフェース100cは、コンピュータネットワークを介してPLC2およびHMIクライアント20と接続し、PLC信号および制御コマンドを送受信可能なデバイスである。入力インタフェース100dは、キーボード、マウス、タッチパネル等の入力デバイスである。
上述したHMIクライアント20の各処理は、処理回路により実現される。処理回路は、プロセッサ200aと、メモリ200bと、ネットワークインタフェース200cと、入力インタフェース200dと、少なくとも一つのディスプレイ200eとが接続して構成されている。プロセッサ200aは、メモリ200bに記憶された各種プログラムを実行することにより、HMIクライアント20の各機能を実現する。メモリ200bは、ROM、RAM、HDD、SSDなどを含む。ネットワークインタフェース200cは、ウェブHMIサーバ10に接続し、PLC信号および制御コマンドを送受信可能なデバイスである。入力インタフェース200dは、キーボード、マウス、タッチパネル等の入力デバイスである。なお、HMIクライアント20は、タブレット等の携帯端末であってもよい。
以上、本発明の実施の形態について説明したが、本発明は、上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
10 ウェブHMIサーバ
11 ウェブサーバ
13 サーバ情報配信プログラム
14 インストール用HTMLファイル
15 疑似シンクライアントインストーラ
16 サーバグループ情報テーブル
17 クライアント常駐プログラム
18 サーバ接続優先順リストテーブル
19 サーバインストーラ
20 HMIクライアント
21 ウェブブラウザ
22 HMI制御処理
23 クライアント制御処理
24 ウェブサーバ
25 常駐プロセス
26 クライアントリソース
28 サーバグループ情報
30 サーバグループ情報書込処理
31 テーブル共有処理
32 接続優先順リスト送信処理
33 死活監視処理
34 接続優先順リスト要求処理
35 サーバ接続処理
36 フェイルオーバ処理
37 フェイルバック処理
38 サーバグループ情報要求処理
39 インストーラ実行確認処理
40 権限昇格処理
41 PLC情報収集処理
42 共有フォルダ作成処理
43 常駐プロセス設定処理
44 テーブル管理処理
71 アドレスバー
81 通知バー
91 権限昇格ダイアログ
100a プロセッサ
100b メモリ
100c ネットワークインタフェース
100d 入力インタフェース
100e ディスプレイ
200a プロセッサ
200b メモリ
200c ネットワークインタフェース
200d 入力インタフェース
200e ディスプレイ

Claims (6)

  1. プラントの状態を表示するパーツが配置されたヒューマンマシンインターフェース(HMI)画面を表示するウェブブラウザを実行する複数のHMIクライアントと、
    プログラマブルロジックコントローラに接続し、前記プログラマブルロジックコントローラから受信したPLC信号に応じて前記パーツの状態を更新する表示信号を前記ウェブブラウザへ送信する複数のウェブHMIサーバと、を備え、
    前記複数のウェブHMIサーバのうち少なくとも2つは、同一のサーバグループに属する、SCADAウェブHMIシステムであって、
    前記複数のウェブHMIサーバの各ウェブHMIサーバは、
    少なくとも1つのプロセッサと、
    プログラムを記憶するメモリと、を備え、
    前記プログラムは、前記少なくとも1つのプロセッサにより実行されることで、前記少なくとも1つのプロセッサに、
    サーバ接続優先順リストテーブルを前記サーバグループに属するすべての前記ウェブHMIサーバ間で共有するテーブル共有処理と、
    前記HMIクライアントからリスト要求信号を受信した場合に、前記サーバ接続優先順リストテーブルに定められた割り当て順に従って、前記サーバグループに属するすべての前記ウェブHMIサーバの接続優先順を定めたサーバ接続優先順リストを送信する接続優先順リスト送信処理と、を含む処理を実行させ、
    前記サーバ接続優先順リストテーブルは、複数の前記サーバ接続優先順リストのそれぞれについて、前記サーバグループに属する各前記ウェブHMIサーバに接続する前記HMIクライアントの数を均等に近づけるように前記割り当て順を定めており、
    前記複数のHMIクライアントの各HMIクライアントは、
    少なくとも1つのプロセッサと、
    プログラムを記憶するメモリと、を備え、
    前記プログラムは、前記少なくとも1つのプロセッサにより実行されることで、前記少なくとも1つのプロセッサに、
    前記サーバグループに属するすべての前記ウェブHMIサーバの稼働状態を監視する死活監視処理と、
    前記サーバグループに属するいずれか1つの前記ウェブHMIサーバへ、前記サーバ接続優先順リストを要求するための前記リスト要求信号を送信する接続優先順リスト要求処理と、
    前記サーバ接続優先順リストを受信した場合に、前記サーバグループに属する少なくとも1つの稼働中の前記ウェブHMIサーバのうち、前記サーバ接続優先順リストに定められた接続優先順位が最も高い前記ウェブHMIサーバとコネクションを確立するサーバ接続処理と、
    現在接続中の前記ウェブHMIサーバが非稼働状態となった場合に、前記サーバグループに属する少なくとも1つの稼働中の前記ウェブHMIサーバのうち、前記サーバ接続優先順リストに定められた接続優先順位が最も高い前記ウェブHMIサーバへコネクションを切り替えるフェイルオーバ処理と、を含む処理を実行させること、
    を特徴とするSCADAウェブHMIシステム。
  2. 前記複数のウェブHMIサーバは、前記サーバグループに属する第1ウェブHMIサーバと第2ウェブHMIサーバとを含み、
    前記サーバ接続優先順リストテーブルは、1番目に接続する前記HMIクライアントに割り当てられる第1サーバ接続優先順リストと、2番目に接続する前記HMIクライアントに割り当てられる第2サーバ接続優先順リストとを含み、
    前記第1サーバ接続優先順リストは、前記第1ウェブHMIサーバ、前記第2ウェブHMIサーバの順に接続優先順が定められており、
    前記第2サーバ接続優先順リストは、前記第2ウェブHMIサーバ、前記第1ウェブHMIサーバの順に接続優先順が定められていること、
    を特徴とする請求項1記載のSCADAウェブHMIシステム。
  3. 前記複数のウェブHMIサーバは、前記サーバグループに属する第1ウェブHMIサーバと第2ウェブHMIサーバと第3ウェブHMIサーバとを含み、
    前記サーバ接続優先順リストテーブルは、1番目に接続する前記HMIクライアントに割り当てられる第1サーバ接続優先順リストと、2番目に接続する前記HMIクライアントに割り当てられる第2サーバ接続優先順リストと、3番目に接続する前記HMIクライアントに割り当てられる第3サーバ接続優先順リストと、4番目に接続する前記HMIクライアントに割り当てられる第4サーバ接続優先順リストと、5番目に接続する前記HMIクライアントに割り当てられる第5サーバ接続優先順リストと、6番目に接続する前記HMIクライアントに割り当てられる第6サーバ接続優先順リストと、を含み、
    前記第1サーバ接続優先順リストは、前記第1ウェブHMIサーバ、前記第2ウェブHMIサーバ、前記第3ウェブHMIサーバの順に接続優先順が定められており、
    前記第2サーバ接続優先順リストは、前記第2ウェブHMIサーバ、前記第3ウェブHMIサーバ、前記第1ウェブHMIサーバの順に接続優先順が定められており、
    前記第3サーバ接続優先順リストは、前記第3ウェブHMIサーバ、前記第1ウェブHMIサーバ、前記第2ウェブHMIサーバの順に接続優先順が定められており、
    前記第4サーバ接続優先順リストは、前記第1ウェブHMIサーバ、前記第3ウェブHMIサーバ、前記第2ウェブHMIサーバの順に接続優先順が定められており、
    前記第5サーバ接続優先順リストは、前記第2ウェブHMIサーバ、前記第1ウェブHMIサーバ、前記第3ウェブHMIサーバの順に接続優先順が定められており、
    前記第6サーバ接続優先順リストは、前記第3ウェブHMIサーバ、前記第2ウェブHMIサーバ、前記第1ウェブHMIサーバの順に接続優先順が定められていること、
    を特徴とする請求項1記載のSCADAウェブHMIシステム。
  4. 前記HMIクライアントの前記プログラムは、前記少なくとも1つのプロセッサに、
    対象サーバ名を含むURLにより指定された前記ウェブHMIサーバである対象ウェブHMIサーバへ、前記サーバグループが定められたサーバグループ情報を要求するためのサーバグループ情報要求信号を送信するサーバグループ情報要求処理と、
    前記HMIクライアントのアカウント名とパスワードを含むクライアント認証情報を送信するクライアント認証情報送信処理と、
    前記対象ウェブHMIサーバから前記ウェブブラウザへ、疑似シンクライアントインストーラをダウンロードし、前記疑似シンクライアントインストーラを実行するための通知バーを表示するインストーラ実行確認処理と、
    前記通知バーに対して前記疑似シンクライアントインストーラの実行を許可する操作がされた場合に、前記HMIクライアントの管理者権限を付与するための権限昇格ダイアログを表示する権限昇格処理と、
    前記権限昇格ダイアログに対して権限昇格を許可する操作がされた場合に、前記ウェブHMIサーバから前記クライアント認証情報が入力されることで前記ウェブHMIサーバからアクセス可能な共有フォルダを作成する共有フォルダ作成処理と、
    クライアント常駐プログラムを前記ウェブHMIサーバから前記共有フォルダへコピーし、前記共有フォルダに書き込まれた前記クライアント認証情報を用いて前記クライアント常駐プログラムを常駐プロセスとして設定する常駐プロセス設定処理と、を含む処理を実行させ、
    前記ウェブHMIサーバの前記プログラムは、前記少なくとも1つのプロセッサに、
    前記サーバグループ情報要求信号を受信した場合に、前記対象ウェブHMIサーバが属する前記サーバグループのすべてのサーバ名が定められた前記サーバグループ情報が前記共有フォルダに書き込まれるまで、前記サーバグループ情報の書き込みを繰り返すサーバグループ情報書込処理と、
    前記クライアント認証情報を受信した場合に、前記クライアント認証情報が前記共有フォルダに書き込まれるまで、前記クライアント認証情報の書き込みを繰り返すクライアント認証情報書込処理と、を含む処理を実行させること、
    を特徴とする請求項1乃至3のいずれか1項に記載のSCADAウェブHMIシステム。
  5. 前記HMIクライアントの前記プログラムは、前記少なくとも1つのプロセッサに、
    現在接続中の前記ウェブHMIサーバよりも高い接続優先順位の前記ウェブHMIサーバが稼働している場合に、前記高い接続優先順位の前記ウェブHMIサーバへコネクションを切り替えるフェイルバック処理、を含む処理を実行させること、
    を特徴とする請求項1乃至4のいずれか1項に記載のSCADAウェブHMIシステム。
  6. 前記HMIクライアントの前記プログラムは、前記少なくとも1つのプロセッサに、
    前記フェイルオーバ処理または前記フェイルバック処理を実行した場合に、コネクションを切り替える前に前記ウェブブラウザに表示されていた前記HMI画面に配置された前記パーツの状態情報を前記プログラマブルロジックコントローラから収集するように、コネクションを切り替えた後の前記ウェブHMIサーバへ要求するPLC情報収集処理、を含む処理を実行させること、
    を特徴とする請求項5記載のSCADAウェブHMIシステム。
JP2020513675A 2019-10-10 2019-10-10 Scadaウェブhmiシステム Active JP6888739B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/039967 WO2021070315A1 (ja) 2019-10-10 2019-10-10 Scadaウェブhmiシステム

Publications (2)

Publication Number Publication Date
JP6888739B1 true JP6888739B1 (ja) 2021-06-16
JPWO2021070315A1 JPWO2021070315A1 (ja) 2021-10-21

Family

ID=75438112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020513675A Active JP6888739B1 (ja) 2019-10-10 2019-10-10 Scadaウェブhmiシステム

Country Status (6)

Country Link
US (1) US11720082B2 (ja)
JP (1) JP6888739B1 (ja)
CN (1) CN113039540B (ja)
PH (1) PH12021550876A1 (ja)
TW (1) TWI793420B (ja)
WO (1) WO2021070315A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202200015996A1 (it) * 2022-07-28 2024-01-28 Mtm S R L Sistema di monitoraggio e controllo di produzione di componenti metallici di medie e grandi dimensioni

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117616740A (zh) * 2022-06-21 2024-02-27 东芝三菱电机产业系统株式会社 Scada网页hmi系统
WO2024189793A1 (ja) * 2023-03-14 2024-09-19 東芝三菱電機産業システム株式会社 Scadaウェブhmiシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015424A (ja) * 2007-07-02 2009-01-22 Nec Corp 端末装置、システム、端末制御方法および端末プログラム
WO2013172088A1 (ja) * 2012-05-18 2013-11-21 株式会社 東芝 社会インフラ制御システム、制御方法、制御装置およびサーバ
WO2018087864A1 (ja) * 2016-11-10 2018-05-17 三菱電機株式会社 情報表示装置及び情報表示システム並びに表示画面制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182139B1 (en) 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
CA2216033C (en) * 1997-11-19 2000-03-14 Amsc Subsidiary Corporation Satellite communication network system
US7975043B2 (en) * 2003-02-25 2011-07-05 Hewlett-Packard Development Company, L.P. Method and apparatus for monitoring a network
US20050155043A1 (en) 2004-01-08 2005-07-14 Schulz Kurt S. Human-machine interface system and method for remotely monitoring and controlling a machine
JP2006031063A (ja) * 2004-07-12 2006-02-02 Hitachi Ltd 優先制御装置
US7561937B2 (en) 2005-01-19 2009-07-14 Tosoh Smd, Inc. Automated sputtering target production
US8886798B2 (en) * 2010-11-15 2014-11-11 Vardr Pty Ltd Group monitoring system and method
JP5352635B2 (ja) * 2011-07-19 2013-11-27 日本電信電話株式会社 情報処理システム、情報処理方法およびプログラム
US9870545B2 (en) 2013-10-08 2018-01-16 General Electric Company System and method for providing user interface cards
BR112017020503B1 (pt) 2015-03-27 2023-10-24 Bühler AG Método e sistema para controle de processo de usinas em uma rede de máquina a máquina com base em opc-ua
JP6477319B2 (ja) 2015-07-17 2019-03-06 東芝三菱電機産業システム株式会社 プラント制御システム
CN109936587B (zh) * 2017-12-15 2022-02-22 北京京东乾石科技有限公司 控制方法、控制装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015424A (ja) * 2007-07-02 2009-01-22 Nec Corp 端末装置、システム、端末制御方法および端末プログラム
WO2013172088A1 (ja) * 2012-05-18 2013-11-21 株式会社 東芝 社会インフラ制御システム、制御方法、制御装置およびサーバ
WO2018087864A1 (ja) * 2016-11-10 2018-05-17 三菱電機株式会社 情報表示装置及び情報表示システム並びに表示画面制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202200015996A1 (it) * 2022-07-28 2024-01-28 Mtm S R L Sistema di monitoraggio e controllo di produzione di componenti metallici di medie e grandi dimensioni

Also Published As

Publication number Publication date
CN113039540B (zh) 2023-11-07
PH12021550876A1 (en) 2021-10-18
WO2021070315A1 (ja) 2021-04-15
CN113039540A (zh) 2021-06-25
TW202116045A (zh) 2021-04-16
US11720082B2 (en) 2023-08-08
US20230145367A1 (en) 2023-05-11
TWI793420B (zh) 2023-02-21
JPWO2021070315A1 (ja) 2021-10-21

Similar Documents

Publication Publication Date Title
JP6888739B1 (ja) Scadaウェブhmiシステム
JP5335948B2 (ja) 複数のコンピュータシステムによるプログラムの実行を管理するシステム
WO2012056596A1 (ja) 計算機システム及び処理制御方法
US8341705B2 (en) Method, apparatus, and computer product for managing operation
WO2012050224A1 (ja) コンピュータリソース制御システム
CN103533063A (zh) 一种可实现web应用资源动态扩展的方法及装置
CN109313577A (zh) 分布式计算网络中的数据平面api
JP2008152591A (ja) 情報処理装置の割当て方法、情報処理システム及び管理サーバ
JP2007233815A (ja) 情報処理システムおよび情報処理装置の割当管理方法
US20170206027A1 (en) Management system and management method of computer system
WO2006054401A1 (ja) フィールド機器及びこれを用いたシステム
CN115686813A (zh) 一种资源调度方法、装置、电子设备和存储介质
CN111095134B (zh) 用于综合楼宇自动化系统的容错服务
JP4874807B2 (ja) サーバ管理プログラム、サーバ管理方法、およびサーバ管理装置
JP5734421B2 (ja) 管理情報生成方法、管理情報生成プログラムおよび管理情報生成装置
US20180159718A1 (en) Computer and method of operation of its network
KR101545232B1 (ko) 분산형 컴퓨팅을 이용한 통합 감시 제어 시스템
WO2022009438A1 (ja) サーバメンテナンス制御装置、システム、制御方法及びプログラム
JP6394620B2 (ja) サーバ管理システム、サーバ、サーバ管理方法およびサービスプロセッサ
JP5895043B1 (ja) クラスタシステム、クラスタ管理サーバおよびクラスタ管理用プログラム
KR101431902B1 (ko) 가상화된 홈네트워크 시스템 및 그의 운영 방법
JP2004054855A (ja) 並列処理システム、サーバ、処理端末装置、並列処理方法、プログラム、及び、記録媒体
KR20120016744A (ko) 모바일 기기 사용자를 위한 개인용 컴퓨터 시스템 및 그 개인용 컴퓨터 시스템의 운용방법
CN115361270A (zh) 一种存储集群访问ad域的方法、装置及介质
JP2021157562A (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210503

R150 Certificate of patent or registration of utility model

Ref document number: 6888739

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250