IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝三菱電機産業システム株式会社の特許一覧 ▶ 株式会社東芝の特許一覧

<>
  • 特許-SCADAウェブHMIサーバ装置 図1
  • 特許-SCADAウェブHMIサーバ装置 図2
  • 特許-SCADAウェブHMIサーバ装置 図3
  • 特許-SCADAウェブHMIサーバ装置 図4
  • 特許-SCADAウェブHMIサーバ装置 図5
  • 特許-SCADAウェブHMIサーバ装置 図6
  • 特許-SCADAウェブHMIサーバ装置 図7
  • 特許-SCADAウェブHMIサーバ装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-15
(45)【発行日】2023-03-24
(54)【発明の名称】SCADAウェブHMIサーバ装置
(51)【国際特許分類】
   G05B 19/05 20060101AFI20230316BHJP
【FI】
G05B19/05 A
【請求項の数】 3
(21)【出願番号】P 2019137202
(22)【出願日】2019-07-25
(65)【公開番号】P2021022071
(43)【公開日】2021-02-18
【審査請求日】2022-07-14
(73)【特許権者】
【識別番号】501137636
【氏名又は名称】東芝三菱電機産業システム株式会社
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100082175
【弁理士】
【氏名又は名称】高田 守
(74)【代理人】
【識別番号】100106150
【弁理士】
【氏名又は名称】高橋 英樹
(72)【発明者】
【氏名】藤枝 宏之
(72)【発明者】
【氏名】清水 伸夫
(72)【発明者】
【氏名】野島 章
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特開2003-280732(JP,A)
【文献】特開2013-235320(JP,A)
【文献】特開2006-72442(JP,A)
【文献】国際公開第2018/087864(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
(57)【特許請求の範囲】
【請求項1】
プラントの状態を表示するパーツが配置されたヒューマンマシンインターフェース(HMI)画面を表示するウェブブラウザを少なくとも一つ実行するHMI端末と、プログラマブルロジックコントローラ(PLC)とに接続し、前記PLCから受信したPLC信号に応じて前記パーツの状態を更新するための更新データを送信するSCADAウェブHMIサーバ装置において、
少なくとも一つのプロセッサと、
プログラムを記憶するメモリと、を備え、
前記プログラムは、前記少なくとも一つのプロセッサにより実行されることで、前記少なくとも一つのプロセッサに、
前記HMI画面の画面名と、前記HMI画面に配置された前記パーツのパーツ名と、前記パーツの状態を変化させる前記PLC信号のPLC信号名と、を関連付けた画面情報を管理する画面情報管理処理と、
実行中ウェブブラウザのブラウザ名と、前記実行中ウェブブラウザに表示されている前記HMI画面の前記画面名とを関連付けたブラウザ情報を管理するブラウザ情報管理処理と、
前記PLCから複数のPLC信号を受信し、前記複数のPLC信号のうち変化があったPLC信号の変化PLC信号名と変化PLC信号値を抽出する変化PLC信号抽出処理と、
前記画面情報から前記変化PLC信号名と同じPLC信号名に関連付いた前記画面名と前記パーツ名を抽出し、前記ブラウザ情報から前記抽出された画面名に関連付いた前記ブラウザ名を抽出し、前記抽出されたブラウザ名に対応する前記実行中ウェブブラウザへ前記抽出されたパーツ名と前記変化PLC信号値とを含む前記更新データを送信するブラウザ表示更新処理と、を含む処理を実行させる
ことを特徴とするSCADAウェブHMIサーバ装置。
【請求項2】
前記画面情報管理処理は、
第1HMI画面の第1画面名と、前記第1HMI画面に配置される第1パーツの第1パーツ名と、前記第1パーツの状態を変化させる第1PLC信号の第1PLC信号名とを関連付けた第1画面デバイスリストと、
少なくとも第2HMI画面の第2画面名と、前記第2HMI画面に配置される第2パーツの第2パーツ名とを関連付けた第2画面デバイスリストと、
前記第2パーツ名と、前記第2パーツの状態に影響する前記第1パーツの前記第1パーツ名とを関連付けた派生デバイスリストと、を読み込んで、
前記画面情報に、
前記第2画面名と、前記派生デバイスリストを介して前記第2パーツ名にリンクする前記第1パーツ名と、前記第1パーツ名に関連付いた前記第1画面デバイスリストの前記第1PLC信号名と、を関連付けた追加画面情報と、を加え、
前記ブラウザ表示更新処理は、前記変化PLC信号名が前記第1PLC信号名と同じである場合に、前記第2HMI画面を表示している実行中ウェブブラウザへ前記第1パーツ名と前記変化PLC信号値とを含む前記更新データを送信すること、
を特徴とする請求項1記載のSCADAウェブHMIサーバ装置。
【請求項3】
前記第2HMI画面を表示している前記実行中ウェブブラウザは、
前記第1パーツの状態を変化させる前記第1PLC信号の前記変化PLC信号値を含む前記更新データを受信し、
前記第1PLC信号の前記変化PLC信号値を、前記第2パーツの状態変化について予め定めたスクリプトに入力し、前記スクリプトの演算結果に基づいて、前記第2パーツの状態を変化させること、
を特徴とする請求項2記載のSCADAウェブHMIサーバ装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ウェブブラウザ上でSCADA HMIを動作させるためのSCADAウェブHMIサーバ装置に関する。
【背景技術】
【0002】
SCADA(Supervisory Control And Data Acquisition)は、社会インフラシステムを監視制御する仕組みとして知られている。社会インフラシステムは、鉄鋼圧延システム、電力送変電システム、上下水道処理システム、ビル管理システム、道路システムなどである。
【0003】
SCADAは、産業制御システムの一種であり、コンピュータによるシステム監視とプロセス制御を行う。SCADAでは、システムの処理性能に合わせた即応性(リアルタイム性)が必要である。
【0004】
SCADAは一般に次のようなサブシステムから構成される。
(1)HMI(Human Machine Interface)
HMIは、対象プロセス(監視対象装置)のデータをオペレータに提示し、オペレータがプロセスを監視し制御できるようにする機構である。例えば特許文献1には、SCADAクライアント上で動作するHMI画面を備えるSCADA HMIが開示されている。
(2)監視制御システム
監視制御システムは、プロセス上の信号データを収集し、プロセスに対して制御コマンドを送る。PLC(Programable Logic Controller)などによって構成される。
(3)遠方入出力装置(Remote Input Output:RIO)
遠方入出力装置は、プロセス内に設置されたセンサと接続し、センサの信号をデジタルのデータに変換し、そのデジタルデータを監視制御システムに送る。
(4)通信基盤
通信基盤は、監視制御システムと遠方入出力装置を接続する。
【先行技術文献】
【特許文献】
【0005】
【文献】日本特開2017-27211号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1におけるSCADAクライアントは、監視制御ロジックを実行可能な高性能なコンピュータで動作する。また、SCADAクライアントを複数設置する場合には、SCADAクライアント数分の高性能なコンピュータを用意する必要があり、かつ、個別に監視制御ロジックを実装する必要がある。また、SCADAクライアントをマルチモニタ構成にする場合にも、モニタに表示されるHMI画面毎に監視制御ロジックを実装する必要がある。そのため、SCADA HMIの低コスト化が望まれている。
【0007】
SCADA HMIの低コスト化を実現するため、本願発明者は、ブラウザベースのHMIサブシステムを開発するに至った。サーバで監視制御ロジックを実行するウェブアプリケーション化により、クライアント端末(ウェブ端末)では、個別の監視制御ロジックを実装する必要がない。クライアント端末は、サーバで処理された監視制御ロジックの結果をウェブブラウザ上で表示するだけで足りる。そのため、クライアント端末は、ウェブブラウザが動作する程度のスペックの低いコンピュータで足りる。例えば、タブレットなどの携帯端末でもシステムの監視と制御が可能になる。これによれば、複数のクライアント端末がサーバに接続する構成を低コストで実現できる。なお、監視制御ロジックを含まないウェブ端末はシンクライアントと称される。
【0008】
しかしながら、プラント監視においては数万点におよぶPLC信号を高速に処理し、HMI画面に反映させる必要がある。そのため、ブラウザベースのHMIサブシステムの高速化が望まれる。
【0009】
この発明は、上述の課題を解決するためになされた。この発明の目的は、データ処理量を低減して信号処理を高速化したSCADAウェブHMIサーバ装置を提供することである。
【課題を解決するための手段】
【0010】
上記目的の達成のため、本発明に係るSCADAウェブHMIサーバ装置は以下のように構成される。
【0011】
SCADAウェブHMIサーバ装置は、ヒューマンマシンインターフェース(HMI)端末と、プログラマブルロジックコントローラ(PLC)とに接続する。HMI端末は、プラントの状態を表示するパーツが配置されたHMI画面を表示するウェブブラウザを少なくとも一つ実行する。前記SCADAウェブHMIサーバ装置は、前記PLCから受信したPLC信号に応じて前記パーツの状態を更新するための更新データを送信する。
【0012】
前記SCADAウェブHMIサーバ装置は、少なくとも一つのプロセッサと、プログラムを記憶するメモリとを備える。前記プログラムは、前記少なくとも一つのプロセッサにより実行されることで、前記少なくとも一つのプロセッサに、以下の処理を含む処理を実行させる。
【0013】
画面情報管理処理は、前記HMI画面の画面名と、前記HMI画面に配置された前記パーツのパーツ名と、前記パーツの状態を変化させる前記PLC信号のPLC信号名と、を関連付けた画面情報を管理する。
【0014】
ブラウザ情報管理処理は、実行中ウェブブラウザのブラウザ名と、前記実行中ウェブブラウザに表示されている前記HMI画面の前記画面名とを関連付けたブラウザ情報を管理する。
【0015】
変化PLC信号抽出処理は、前記PLCから複数のPLC信号を受信し、前記複数のPLC信号のうち変化があったPLC信号の変化PLC信号名と変化PLC信号値を抽出する。
【0016】
ブラウザ表示更新処理は、前記画面情報から前記変化PLC信号名と同じPLC信号名に関連付いた前記画面名と前記パーツ名を抽出し、前記ブラウザ情報から前記抽出された画面名に関連付いたブラウザ名を抽出し、前記抽出されたブラウザ名に対応する前記実行中ウェブブラウザへ前記抽出されたパーツ名と前記変化PLC信号値とを含む前記更新データを送信する。
【0017】
1つの好ましい態様では、前記画面情報管理処理は、第1画面デバイスリストと第2画面デバイスリストと派生デバイスリストとを読み込む。前記第1画面デバイスリストは、第1HMI画面の第1画面名と、前記第1HMI画面に配置される第1パーツの第1パーツ名と、前記第1パーツの状態を変化させるPLC信号の第1PLC信号名とを関連付けた情報である。前記第2画面デバイスリストは、少なくとも第2HMI画面の第2画面名と、前記第2HMI画面に配置される第2パーツの第2パーツ名とを関連付けた情報である。派生デバイスリストは、前記第2パーツ名と、前記第2パーツの状態に影響する前記第1パーツの前記第1パーツ名とを関連付けた情報である。
【0018】
さらに、前記画面情報管理処理は、これらのデバイスリストを読み込んで、前記画面情報に、第1画面情報と第2画面情報と追加画面情報を加える。前記第1画面情報は、前記第1画面名と前記第1パーツ名と前記第1PLC信号名とを関連付けた情報である。前記第2画面情報は、少なくとも前記第2画面名と前記第2パーツ名を関連付けた情報である。追加画面情報は、前記第2画面名と、前記派生デバイスリストを介して前記第2パーツ名にリンクする前記第1パーツ名と、前記第1パーツ名に関連付いた前記第1画面デバイスリストの前記第1PLC信号名と、を関連付けた情報である。
【0019】
さらに、前記ブラウザ表示更新処理は、前記変化PLC信号名が前記第1PLC信号名と同じである場合に、前記第2HMI画面を表示している実行中ウェブブラウザへ前記第1パーツ名と前記変化PLC信号値とを含む前記更新データを送信する。
【0020】
さらに、前記第2HMI画面を表示している前記実行中ウェブブラウザは、前記第1パーツの状態を変化させる前記第1PLC信号の前記変化PLC信号値を含む前記更新データを受信する。そして、前記実行中ウェブブラウザは、前記第1PLC信号の前記変化PLC信号値を、前記第2パーツの状態変化について予め定めたスクリプトに入力し、前記スクリプトの演算結果に基づいて、前記第2パーツの状態を変化させる。
【発明の効果】
【0021】
本発明によれば、SCADAウェブHMIサーバ装置は、変化があったPLC信号に対応するパーツが配置されたHMI画面を表示している実行中ウェブブラウザにのみ更新データを送信する。すなわち、HMIサーバ装置10は、受信したPLC信号のうち変化があったPLC信号のみを対象として信号処理を行えばよい。そのため、データ処理量を大幅に軽減できる。また、更新データは、HMI端末単位ではなく、ウェブブラウザ単位で送信される。そのため、1つのHMI端末上で複数のウェブブラウザが実行される場合に、更新データは、更新データに関係するパーツが配置されたHMI画面を表示している実行中ウェブブラウザへのみ送信される。その結果、更新データと関係のないウェブブラウザでは処理されずHMI端末のデータ処理量を軽減できる。
【0022】
本発明によれば、HMIサブシステムのウェブアプリケーション化による低コスト化と共に、データ処理量の軽減による高速化を実現することができる。
【図面の簡単な説明】
【0023】
図1】この発明の実施の形態1におけるSCADAのシステム構成を説明するための図である。
図2】この発明の実施の形態1におけるSCADAウェブHMIサーバ装置の構成について説明するためのブロック図である。
図3】この発明の実施の形態1におけるSCADAウェブHMIサーバ装置に読み込まれるデバイスリストの一例を示す図である。
図4】この発明の実施の形態1におけるSCADAウェブHMIサーバ装置の信号処理例について説明するための図である。
図5】この発明の実施の形態2におけるSCADAウェブHMIサーバ装置の構成について説明するためのブロック図である。
図6】この発明の実施の形態2におけるSCADAウェブHMIサーバ装置に読み込まれるデバイスリストおよび派生デバイスリストの一例を示す図である。
図7】この発明の実施の形態2におけるSCADAウェブHMIサーバ装置の信号処理例について説明するための図である。
図8】HMI端末およびウェブHMIサーバが有するハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、図面を参照して本発明の実施の形態について詳細に説明する。但し、以下に示す実施の形態において各要素の個数、数量、量、範囲等の数に言及した場合、特に明示した場合や原理的に明らかにその数に特定される場合を除いて、その言及した数にこの発明が限定されるものではない。また、以下に示す実施の形態において説明する構造等は、特に明示した場合や明らかに原理的にそれに特定される場合を除いて、この発明に必ずしも必須のものではない。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【0025】
実施の形態1.
<全体構成>
図1は、SCADAのシステム構成を説明するための図である。SCADAは、ヒューマンマシンインターフェース(HMI)1、監視制御システムとしてのプログラマブルロジックコントローラ(PLC)2、通信基盤としての通信装置3、RIO4をサブシステムとして備える。SCADAは、PLC2またはRIO4を介して監視対象装置5に接続する。
【0026】
PLC2(監視制御システム)、通信装置3(通信基盤)、RIO4に関する説明は、背景技術で述べた通りであるため省略する。監視対象装置5は、監視制御対象のプラントを構成するセンサ、アクチュエータなどである。
【0027】
HMI1(SCADAウェブHMIシステム)は、SCADAウェブHMIサーバ装置10(以下、HMIサーバ装置10と記す。)と、少なくとも一つのHMI端末20とを備える。
【0028】
HMIサーバ装置10は、コンピュータネットワークを介してPLC2に接続する。HMIサーバ装置10は、コンピュータネットワークを介してHMI端末20に接続する。HMIサーバ装置10は、複数のHMI端末20に接続してもよい。各HMI端末を区別する必要がない場合には単にHMI端末20と記す。
【0029】
HMI端末20は、監視制御ロジックを含まないシンクライアントであり、ウェブブラウザ21を少なくとも一つ実行する。ウェブブラウザ21は、プラントの状態を表示するパーツが配置されたHMI画面を表示する。具体的には、HMI端末20は、少なくとも1つのモニタ(図8のディスプレイ20e)を備える。1つのモニタに1つのウェブブラウザ21がフルスクリーンで表示される。HMI端末20が複数のモニタを有する場合、各モニタにウェブブラウザ21がフルスクリーンで表示される。すなわち、HMI端末20は、複数のウェブブラウザ21を実行する。
【0030】
HMIサーバ装置10は、HMIサーバアプリケーション11を実行する。HMIサーバアプリケーション11は、HMI端末20と通信するウェブサーバ機能およびPLC2と通信するI/Oサーバ機能(アプリケーションサーバ機能)を備える。HMI端末20は、ウェブブラウザ21を実行する。実行環境であるHMI1は、ウェブブラウザ21上で動作するスクリプト(たとえばJavaScript(登録商標))と、HMIサーバアプリケーション11とが協調するウェブアプリケーションとして動作する。
【0031】
HMIサーバ装置10は、PLC2から受信したPLC信号に応じて、パーツの状態を更新するための更新データをウェブブラウザ21へ送信する。HMIサーバ装置10は、ウェブブラウザ21から制御コマンドを受信してPLC2へ送信する。
【0032】
<SCADAウェブHMIサーバ装置>
図2および図3に示す例を参照して、実施の形態1におけるHMIサーバ装置10で動作するHMIサーバアプリケーション11の特徴的処理について説明する。
【0033】
図2では、HMIサーバ装置10は、HMI端末A(20A)と、HMI端末B(20B)とに接続する。HMI端末Aは、第1モニタと第2モニタを備える。HMI端末Bは、第3モニタを備える。第1モニタには、ブラウザA1(21a1)がフルスクリーンで表示される。第2モニタには、ブラウザA2(21a2)がフルスクリーンで表示される。第3モニタには、ブラウザB1(21b1)がフルスクリーンで表示される。図2では、ブラウザA1はHMI画面G1を表示し、ブラウザA2はHMI画面G2を表示し、ブラウザB1はHMI画面G3を表示しているが、各ウェブブラウザが表示するHMI画面は、オペレータの操作により自由に変更することができる。各ウェブブラウザを区別する必要がない場合には単にウェブブラウザ21と記す。
【0034】
HMIサーバ装置10は、後述する図8に示すように、少なくとも一つのプロセッサ10aと、プログラムを記憶する10bと、を備える。プログラムは、プロセッサ10aにより実行されることで、プロセッサ10aに、以下の各処理を含む処理を実行させる。
【0035】
HMIサーバアプリケーション11は、その開始時に、ウェブブラウザ21と通信するための通信オブジェクトと、PLCと通信するための通信オブジェクトとを生成する。
【0036】
また、HMIサーバアプリケーション11は、その開始時に、パーツが配置されたHMI画面の画面データ31と、デバイスリスト32とを読み込む。
【0037】
画面データ31は、HMI画面毎に定義されたベクターデータである。一例として、ベクターデータは、Scalable Vector Graphics(SVG)フォーマットのデータである。SVGデータは、SVGエレメントの属性として、HMI画面に配置されたパーツのパーツ名、形、位置、色、大きさを含む。なお、画面データ31のファイル名には画面名が含まれる。
【0038】
デバイスリスト32は、HMI画面毎に定義されたデータである。一例として、このデータは、Comma-Separated Values(CSV)フォーマットのデータである。デバイスリスト32は、フィールドとしてパーツ名(アイテム名)、タイプ、コメント、出力PLCID、PLCアドレス、通信アドレスを含む(図3)。パーツ名は、例えば画面名と画面内のデバイス番号とを組み合わせた名称である。さらにパーツ種別を組み合わせた名称であってもよい。各パーツ名は、HMI1において固有の名称である。なお、デバイスリスト32のファイル名には画面名が含まれる。
【0039】
また、HMIサーバアプリケーション11は、読み込んだ画面データ31とデバイスリスト32とに基づいて、HMI画面毎のコンテンツを生成する。コンテンツは、SVGデータ、画面情報を含む。HMIサーバアプリケーション11は、ウェブブラウザ21から要求されたHMI画面に対応するコンテンツを、ウェブブラウザ21へ送信する。ウェブブラウザ21は、コンテンツを受信してHMI画面を表示する。
【0040】
HMIサーバアプリケーション11は、PLC2から受信したPLC信号をPLC信号状態情報17に記憶する。PLC信号状態情報17には、受信したPLC信号のPLC信号名とPLC信号値とを関連付けた情報が記憶される。PLC信号名は、例えば図3の出力PLCIDとPLCアドレスを組み合わせた名称である。各PLC信号名は、HMI1において固有の名称である。
【0041】
画面情報管理処理12は、HMI画面の画面名と、当該HMI画面に配置されたパーツのパーツ名と、当該パーツの状態を変化させるPLC信号のPLC信号名と、を関連付けた画面情報13を管理する。
【0042】
画面情報13は、HMI画面毎に定義されたデバイスリスト32に基づいて生成される。図3には、デバイスリスト32の一例として、HMI画面G1のG1デバイスリスト32a、HMI画面G2のG2デバイスリスト32b、HMI画面G3のG3デバイスリスト32cが記載されている。図3には、これらのデバイスリストに基づいて生成された画面情報13が記載されている。
【0043】
ブラウザ情報管理処理14は、実行中ウェブブラウザ21のブラウザ名と、実行中ウェブブラウザ21に表示されているHMI画面の画面名と、を関連付けたブラウザ情報15を管理する。すなわち、表示されているHMI画面は、HMI端末単位ではなく、ブラウザ単位(モニター単位)で管理される。ブラウザ名は、HMI端末名とモニタ番号(ブラウザ番号)とを組み合わせた名称である。各ブラウザ名は、HMI1において固有の名称である。
【0044】
図2では、ブラウザ情報管理処理14は、ブラウザ情報15として、実行中ウェブブラウザ21a1のブラウザ名(A1)と画面名(G1)とを関連付けた情報と、実行中ウェブブラウザ21a2のブラウザ名(A2)と画面名(G2)とを関連付けた情報と、実行中ウェブブラウザ21b1のブラウザ名(B1)と画面名(G3)とを関連付けた情報とを管理する。
【0045】
ブラウザ情報15は、例えば、ウェブブラウザ21の起動時、ウェブブラウザ21の終了時、およびウェブブラウザ21に表示されているHMI画面が他HMI画面へ遷移した時に更新される。
【0046】
変化PLC信号抽出処理16は、PLC2から複数のPLC信号を受信し、複数のPLC信号のうち変化があったPLC信号の信号名(変化PLC信号名)と信号値(変化PLC信号値)を抽出する。
【0047】
具体的には、変化PLC信号抽出処理16は、PLC信号状態情報17に記憶された各PLC信号の値(前回値)と、今回受信した各PLC信号の値(今回値)とを比較して、変化があったかを判定する。変化があった場合には、変化PLC信号抽出処理16は、変化があったPLC信号の信号名(変化PLC信号名)と信号値(変化PLC信号値)を抽出する。
【0048】
ブラウザ表示更新処理18は、画面情報13から、変化PLC信号抽出処理16により抽出された変化PLC信号名と同じPLC信号名に関連付いた画面名とパーツ名を抽出する。
【0049】
さらに、ブラウザ表示更新処理18は、ブラウザ情報15から、抽出された画面名に関連付いたブラウザ名を抽出する。
【0050】
さらに、ブラウザ表示更新処理18は、抽出されたブラウザ名に対応する実行中ウェブブラウザ21へ、抽出されたパーツ名と抽出された変化PLC信号値とを含む更新データを送信する。
【0051】
ブラウザ表示更新処理18によれば、送信される更新データは、変更があったPLC信号ついてのデータのみである。そのため、データ量は極めて小さい。また、更新データは、変更があったPLC信号に対応するパーツが配置されたHMI画面を表示している実行中ウェブブラウザ21に限定して送信される。そのため、更新データは、更新不要なウェブブラウザには送信されない。
【0052】
<HMI端末>
ブラウザ表示更新処理18により送信先として指定された実行中ウェブブラウザ21は、更新データを受信する。ウェブブラウザ21は、更新データに含まれるパーツ名に対応するパーツの状態(数値、色、形、位置)を、変化PLC信号値に応じて変化させる。
【0053】
HMI端末20で複数のウェブブラウザが動作している場合に、更新データは、更新データに関係するパーツが配置されたHMI画面を表示しているウェブブラウザ21でのみ処理される。そのため、更新データと関係のないウェブブラウザ21では処理されずHMI端末20のデータ処理量を減らせる。データ処理量の軽減により、HMI端末20は、ウェブブラウザ21が動作する程度のスペックの低いコンピュータで足りる。例えば、タブレットなどの携帯端末でもシステムの監視と制御が可能になる。
【0054】
<信号処理の流れ>
図4に示す例を参照して、実施の形態1における信号処理の流れについて説明する。
図4は、PLC2からのPLC信号P1_1に応じて、ブラウザA1の画面G1に配置されているパーツG1_1の状態を更新する処理について説明するための図である。なお、P1_1は、図3のG1デバイスリスト32aにおける出力PLCID(P1)とPLCアドレス(1)とを組み合わせた名称である。
【0055】
ステップS1において、変化PLC信号抽出処理16は、PLC2から複数のPLC信号(P1_1、P2_1、P3_1)を受信する。
【0056】
ステップS2において、変化PLC信号抽出処理16は、PLC信号状態情報17に記憶された各PLC信号の値(前回値)と、今回受信した各PLC信号の値(今回値)とを比較して、変化があったかを判定する。変化があった場合は、変化PLC信号抽出処理16は、変化があったPLC信号の変化PLC信号名と変化PLC信号値を抽出する。図4の例では、変化があったPLC信号はP1_1である。
【0057】
ステップS3において、HMIサーバアプリケーション11は、PLC信号状態情報17に記憶されているPLC信号名(P1_1)に対応するPLC信号値を今回値で更新する。
【0058】
ステップS4において、ブラウザ表示更新処理18は、画面情報13から、抽出された変化PLC信号名と同じPLC信号名(P1_1)に関連付いた画面名(G1)とパーツ名(G1_1)を抽出する。
【0059】
ステップS5において、ブラウザ表示更新処理18は、ブラウザ情報15から、抽出された画面名(G1)に関連付いたブラウザ名(A1)を抽出する。
【0060】
ステップS6において、ブラウザ表示更新処理18は、抽出されたブラウザ名(A1)に対応する実行中ウェブブラウザと通信する通信オブジェクトへ、抽出されたパーツ名(G1_1)と抽出された変化PLC信号値とを含む更新データを送信する。
【0061】
ステップS7において、更新データは、通信オブジェクトを介して、ブラウザA1へ送信される。
【0062】
その後、ブラウザA1は、更新データを受信して、変化PLC信号値に応じてパーツG1_1の状態を変化させる。例えば、パーツG1_1の表示色が変化する。
【0063】
以上説明したように、実施の形態1におけるHMIサーバ装置10は、変化があったPLC信号に対応するパーツが配置されたHMI画面を表示している実行中ウェブブラウザ21にのみ更新データを送信する。すなわち、HMIサーバ装置10は、受信したPLC信号のうち変化があったPLC信号のみを対象として信号処理を行えばよい。そのため、データ処理量を大幅に軽減できる。また、更新データは、HMI端末単位ではなく、ウェブブラウザ単位で送信される。そのため、1つのHMI端末上で複数のウェブブラウザ21が実行される場合に、更新データは、更新データに関係するパーツが配置されたHMI画面を表示している実行中ウェブブラウザ21へのみ送信される。その結果、更新データと関係のないウェブブラウザ21では処理されずHMI端末20のデータ処理量を軽減できる
【0064】
ところで、ウェブブラウザ21が起動した時とウェブブラウザ21のHMI画面が遷移した時の処理は、次の通りである。まず、ウェブブラウザ21が起動した時またはウェブブラウザ21のHMI画面が遷移した時、そのブラウザ(例えば21a1)から、HMIサーバアプリケーション11に新たにオープンしたHMI画面の情報が送られ、それに基づき、HMIサーバアプリケーション11はブラウザ情報15を更新する。次に、HMIサーバアプリケーション11は、画面情報13を利用して、そのHMI画面で必要なPLC信号を抽出する。次に、HMIサーバアプリケーション11は、そのHMI画面で必要なPLC信号の値をPLC信号状態情報17から取得して、当該ブラウザに送信する。
【0065】
実施の形態2.
次に、図5乃至図7に示す例を参照して、本発明の実施の形態2について説明する。
上述した実施の形態1におけるHMIサーバ装置10は、変化があったPLC信号に関連付いたパーツが表示されているウェブブラウザ21にのみ更新データを送信する処理を実行する。この処理には、上述した画面情報13が必要である。画面情報13は、HMI画面毎に定義されたデバイスリスト32に基づいて生成される。デバイスリスト32は、HMI画面の画面名と、当該HMI画面に配置されたパーツのパーツ名(アイテム名)と、当該パーツの状態を直接的に変化させるPLC信号のPLC信号名と、を関連付けた情報である。原則として、デバイスリスト32に定義される固有のパーツ名には、固有のPLC信号名が関連付けられる。
【0066】
ところで、あるHMI画面に配置されたパーツの状態が、他のHMI画面に配置されたパーツの状態の影響を受けるケースがある。例えば、第1HMI画面に配置された第1パーツに対応する第1PLC信号の信号値が特定条件を満たす場合に、第2HMI画面に配置された第2パーツの使用状態をdisable(無効)からenable(有効)へ変更するケースがある。このような処理は、パーツ操作の安全性を高める安全処理として重要である。
【0067】
このケースでは、第2HMI画面に第2パーツは配置されているが、第1パーツは配置されていない。そのため、第1パーツが配置されていない第2HMI画面のデバイスリストは、第1パーツ名と第1PLC信号名とを関連付けた情報を含まない。また、第1PLC信号に直接的に関係するのは第1パーツであり、第2パーツは間接的に関係するに過ぎない。そのため、第2HMI画面のデバイスリストは、第2パーツ名と第1PLC信号名とを関連付けた情報を含まない。よって、第2パーツが配置された第2HMI画面が表示されているウェブブラウザには、第1パーツに関する更新データは送信されない。したがって、実施の形態1で説明した高速化のための構成によれば、上述のような安全処理を実現できないという課題があった。
【0068】
実施の形態2では、このようなケースにも対応できるように派生デバイスリストを導入することとした。
【0069】
<SCADAウェブHMIサーバ装置>
図5および図6に示す例を参照して、実施の形態2におけるHMIサーバ装置10で動作するHMIサーバアプリケーション11の特徴的処理について説明する。
【0070】
図5に示す構成は、派生デバイスリスト33が追加されている点、および、画面情報管理処理12に替えて画面情報管理処理12aを備える点を除き、図2の構成と同様である。
【0071】
画面情報管理処理12aは、HMI画面の画面名と、当該HMI画面に配置されたパーツのパーツ名と、当該パーツの状態を変化させるPLC信号のPLC信号名と、を関連付けた画面情報13を管理する。PLC信号名は、例えば図6の出力PLCIDとPLCアドレスを組み合わせた名称である。各PLC信号名は、HMI1において固有の名称である。
【0072】
画面情報13は、画面毎に定義されたデバイスリスト32と派生デバイスリスト33とに基づいて生成される。図6には、デバイスリスト32の一例として、HMI画面G1のG1デバイスリスト32a、HMI画面G2のG2デバイスリスト32b、HMI画面G4のG4デバイスリスト32d、および派生デバイスリスト33が記載されている。図6には、これらのデバイスリスト32と派生デバイスリスト33とに基づいて生成された画面情報13が記載されている。
【0073】
図6に示す例を参照して、デバイスリスト32と派生デバイスリスト33とに基づいて画面情報13を生成する方法について説明する。
【0074】
まず、画面情報管理処理12aは、第1画面デバイスリスト(G1デバイスリスト32a、G2デバイスリスト32b)と第2画面デバイスリスト(G4デバイスリスト32d)と派生デバイスリスト33とを読み込む。
【0075】
第1画面デバイスリストは、第1HMI画面の第1画面名と、第1HMI画面に配置される第1パーツの第1パーツ名と、第1パーツの状態を変化させる第1PLC信号の第1PLC信号名とを関連付けた情報で構成される。例えば、図6のG1デバイスリスト32aは、第1画面名(G1)と、第1パーツ名(G1_1)と、第1PLC信号名(P1_1)とを関連付けた情報を含む。ここで、第1PLC信号名は、出力PLCIDとPLCアドレスを組み合わせた名称に相当する。
【0076】
第2画面デバイスリストは、少なくとも第2HMI画面の第2画面名と、第2HMI画面に配置される第2パーツの第2パーツ名とを関連付けた情報で構成される。好ましくは、第2画面デバイスリストは、第1画面デバイスリストと同様に、第2HMI画面の第2画面名と、第2HMI画面に配置される第2パーツの第2パーツ名と、第2パーツの状態を変化させる第2PLC信号の第2PLC信号名とを関連付けた情報で構成される。ここで、第2PLC信号名は、出力PLCIDとPLCアドレスを組み合わせた名称に相当する。
【0077】
例えば、図6のG4デバイスリスト32dは、第2画面名(G4)と、第2パーツ名(G4_1)と、第2PLC信号名(P4_1)とを関連付けた情報を含む。ここで、第2PLC信号名は、出力PLCIDとPLCアドレスを組み合わせた名称に相当する。
【0078】
派生デバイスリスト33は、1のデバイスリスト32の情報と他のデバイスリスト32の情報とをリンクするリンク情報である。派生デバイスリスト33は、第2パーツ名と、第2パーツの状態に影響する第1パーツの第1パーツ名とを関連付けた情報である。このようなパーツ同士をリンクする情報は、第2画面デバイスリストには含まれない。図6の例では、派生デバイスリスト33は、第2パーツ名(G4_1)と、第1パーツ名(G1_1)とを関連付けた情報を含む。なお、派生デバイスリスト33のファイル名には画面名が含まれる。
【0079】
画面情報管理処理12aは、これらのデバイスリスト32と派生デバイスリスト33とを読み込むことにより、画面情報13に、第1画面情報と第2画面情報と追加画面情報を加える。
【0080】
第1画面情報は、上述した第1画面名と第1パーツ名と第1PLC信号名とを関連付けた情報である。
【0081】
第2画面情報は、少なくとも上述した第2画面名と第2パーツ名とを関連付けた情報である。好ましくは、第2画面情報は、第1画面情報と同様に、上述した第2画面名と第2パーツ名と第2PLC信号名とを関連付けた情報である。
【0082】
追加画面情報は、第2画面デバイスリストに定めた第2画面名と、派生デバイスリスト33を介してこの第2パーツ名にリンクする第1パーツ名と、第1パーツ名に関連付いた第1画面デバイスリストの第1PLC信号名と、を関連付けた情報である。図6では、画面情報13は、G4デバイスリスト32dの第2画面名(G4)と、派生デバイスリスト33を介して第2パーツ名(G4_1)にリンクする第1パーツ名(G1_1)と、第1パーツ名(G1_1)に関連付いたG1デバイスリスト32aの第1PLC信号名(P1_1)と、を関連付けた追加画面情報を含む。
【0083】
このように、画面情報管理処理12aは、派生デバイスリスト33を用いて、第2HMI画面(G4)の第2パーツ(G4_1)の状態に影響する第1パーツ(G1_1)の情報を第1画面デバイスリスト(G1デバイスリスト32a)からコピーする。
【0084】
ブラウザ表示更新処理18は、画面情報13から、変化PLC信号抽出処理16により抽出された変化PLC信号名と同じPLC信号名に関連付いた画面名とパーツ名を抽出する。
【0085】
さらに、ブラウザ表示更新処理18は、ブラウザ情報15から、抽出された画面名に関連付いたブラウザ名を抽出する。
【0086】
さらに、ブラウザ表示更新処理18は、抽出されたブラウザ名に対応する実行中ウェブブラウザへ、抽出されたパーツ名と抽出された変化PLC信号値とを含む更新データを送信する。
【0087】
このような処理によれば、ブラウザ表示更新処理18は、変化PLC信号名が第1PLC信号名(P1_1)と同じである場合に、第2HMI画面(G4)を表示している実行中ウェブブラウザ(B1)へ第1パーツ名(G1_1)と変化PLC信号値とを含む更新データを送信する。
【0088】
<HMI端末>
第2HMI画面(G4)を表示している実行中ウェブブラウザ(B1)は、第1パーツ(P1_1)の状態を変化させる第1PLC信号(P1_1)の変化PLC信号値を含む更新データを受信する。そして、実行中ウェブブラウザ(B1)は、第1PLC信号(P1_1)の変化PLC信号値を、第2パーツ(G4_1)の状態変化について予め定めたスクリプトに入力し、このスクリプトの演算結果に基づいて、第2パーツ(G4_1)の状態を変化させる。
【0089】
例えば、第2パーツ(G4_1)のスクリプトは、第1PLC信号(P1_1)の変化PLC信号値が特定のブラウザ名を示す値であり、その値と実行中ウェブブラウザ(G4)のブラウザ名が一致する場合に、第2パーツ(G4_1)の使用状態をdisable(無効)からenable(有効)へ変化させるプログラムである。
【0090】
実行中ウェブブラウザ(A1)については実施の形態1と同様であるため説明は省略する。
【0091】
<信号処理の流れ>
図7に示す例を参照して、実施の形態2における信号処理の流れについて説明する。
図7は、PLC2からのPLC信号P1_1に応じて、ブラウザA1の画面G1に配置されているパーツG1_1の状態を更新すると共に、ブラウザB1の画面G4に配置されているパーツG4_1の使用状態を更新する処理について説明するための図である。なお、画面G1に配置されたパーツG1_1とパーツG1_2は、いずれか1つのみを選択可能なボタンであり、パーツG1_1が選択された状態であるものとする。
【0092】
ステップS1において、変化PLC信号抽出処理16は、PLC2から複数のPLC信号(P1_1、P2_1、P3_1)を受信する。
【0093】
ステップS2において、変化PLC信号抽出処理16は、PLC信号状態情報17に記憶された各PLC信号の値(前回値)と、今回受信した各PLC信号の値(今回値)とを比較して、変化があったかを判定する。変化があった場合は、変化PLC信号抽出処理16は、変化があったPLC信号の変化PLC信号名と変化PLC信号値を抽出する。図7の例では、変化があったPLC信号はP1_1である。
【0094】
ステップS3において、HMIサーバアプリケーション11は、PLC信号状態情報17に記憶されているPLC信号名(P1_1)に対応するPLC信号値を今回値で更新する。
【0095】
ステップS4において、ブラウザ表示更新処理18は、画面情報13から、抽出された変化PLC信号名と同じPLC信号名(P1_1)に関連付いた画面名(G1、G4)とパーツ名(G1_1、G1_1)を抽出する。
【0096】
ステップS5において、ブラウザ表示更新処理18は、ブラウザ情報15から、抽出された画面名(G1、G4)に関連付いたブラウザ名(A1、B1)を抽出する。
【0097】
ステップS6において、ブラウザ表示更新処理18は、抽出されたブラウザ名(A1)に対応する実行中ウェブブラウザと通信する通信オブジェクトへ、抽出されたパーツ名(G1_1)と抽出された変化PLC信号値とを含む更新データを送信する。
【0098】
ステップS7において、更新データは、通信オブジェクトを介して、実行中ウェブブラウザA1へ送信される。
【0099】
その後、ブラウザA1は、更新データを受信して、変化PLC信号値に応じてパーツG1_1の状態を変化させる。例えば、パーツG1_1の表示色が変化する。
【0100】
また、ステップS5の処理後、ステップS8において、ブラウザ表示更新処理18は、抽出されたブラウザ名(B1)に対応する実行中ウェブブラウザと通信する通信オブジェクトへ、抽出されたパーツ名(G1_1)と抽出された変化PLC信号値とを含む更新データを送信する。
【0101】
ステップS9において、更新データは、通信オブジェクトを介して、実行中ウェブブラウザ(B1)へ送信される。
【0102】
その後、第2HMI画面(G4)を表示している実行中ウェブブラウザ(B1)は、第1パーツ(P1_1)の状態を変化させる第1PLC信号(P1_1)の変化PLC信号値を含む更新データを受信する。
【0103】
そして、実行中ウェブブラウザ(B1)は、第1PLC信号(P1_1)の変化PLC信号値を、第2パーツ(G4_1)の状態変化について予め定めたスクリプトに入力する。このスクリプトは、第1PLC信号(P1_1)の変化PLC信号値がブラウザ名(B1)を示す値であり、その値と実行中ウェブブラウザ(B1)のブラウザ名が一致する場合に、第2パーツ(G4_1)の使用状態をdisable(無効)からenable(有効)へ変化させるプログラムである。
【0104】
実行中ウェブブラウザ(B1)は、変化PLC信号値を入力値としたスクリプトの演算結果に基づいて、第2パーツ(G4_1)の状態を変化させる。図7の例では、ロック解除条件が成立し、第2パーツ(G4_1)の使用状態はdisable(無効)からenable(有効)へ変化する。
【0105】
以上説明したように、実施の形態2におけるHMIサーバ装置10およびHMI端末20によれば、あるHMI画面内のパーツの状態を他の画面内のパーツの状態に応じて変更することができる。そのため、実施の形態2のシステムによれば、実施の形態1で説明した高速化のための構成を採用しつつ、上述のような安全処理を実現することができる。また、派生デバイスリスト33を用いることで、リンクされたデバイスリストの情報をコピーして画面情報に追加できるので、設計作業を効率化できる。
【0106】
<ハードウェア構成例>
図8は、HMIサーバ装置10およびHMI端末20のハードウェア構成例を示すブロック図である。
【0107】
上述したHMIサーバ装置10の各処理は、処理回路により実現される。処理回路は、プロセッサ10aと、メモリ10bと、ネットワークインタフェース10cとが接続して構成されている。プロセッサ10aは、メモリ10bに記憶された各種プログラムを実行することにより、HMIサーバ装置10の各機能を実現する。ネットワークインタフェース10cは、コンピュータネットワークを介してPLC2およびHMI端末20と接続し、PLC信号および制御コマンドを送受信可能なデバイスである。
【0108】
上述したHMI端末20の各処理は、処理回路により実現される。処理回路は、プロセッサ20aと、メモリ20bと、ネットワークインタフェース20cと、入力インタフェース20dと、少なくとも一つのディスプレイ20eとが接続して構成されている。プロセッサ20aは、メモリ20bに記憶された各種プログラムを実行することにより、HMI端末20の各機能を実現する。ネットワークインタフェース20cは、HMIサーバ装置10に接続し、PLC信号および制御コマンドを送受信可能なデバイスである。入力インタフェース20dは、キーボード、マウス、タッチパネル等の入力デバイスである。ディスプレイ20eは複数台設けられてもよい。なお、HMI端末20は、タブレット等の携帯端末であってもよい。
【0109】
以上、本発明の実施の形態について説明したが、本発明は、上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【0110】
1 HMI
2 PLC
3 通信装置
4 RIO
5 監視対象装置
10 HMIサーバ装置
10a プロセッサ
10b メモリ
10c ネットワークインタフェース
11 HMIサーバアプリケーション
12、12a 画面情報管理処理
13 画面情報
14 ブラウザ情報管理処理
15 ブラウザ情報
16 変化PLC信号抽出処理
17 PLC信号状態情報
18 ブラウザ表示更新処理
20、20A、20B HMI端末
20a プロセッサ
20b メモリ
20c ネットワークインタフェース
20d 入力インタフェース
20e ディスプレイ
21、21a1、21a2、21b1 ウェブブラウザ
31 画面データ
32、32a、32b、32c、32d デバイスリスト
33 派生デバイスリスト
図1
図2
図3
図4
図5
図6
図7
図8