(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】SCADAウェブHMIシステム
(51)【国際特許分類】
G06Q 10/00 20230101AFI20240402BHJP
G05B 19/05 20060101ALI20240402BHJP
G05B 23/02 20060101ALI20240402BHJP
G06F 11/30 20060101ALI20240402BHJP
H04L 67/12 20220101ALI20240402BHJP
【FI】
G06Q10/00
G05B19/05 D
G05B23/02 301P
G06F11/30 140D
G06F11/30 179
H04L67/12
(21)【出願番号】P 2023526765
(86)(22)【出願日】2021-06-10
(86)【国際出願番号】 JP2021022153
(87)【国際公開番号】W WO2022259474
(87)【国際公開日】2022-12-15
【審査請求日】2023-01-30
(73)【特許権者】
【識別番号】501137636
【氏名又は名称】東芝三菱電機産業システム株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】清水 亮
(72)【発明者】
【氏名】野島 章
(72)【発明者】
【氏名】清水 伸夫
【審査官】加内 慎也
(56)【参考文献】
【文献】国際公開第2021/015022(WO,A1)
【文献】国際公開第2021/015024(WO,A1)
【文献】国際公開第2018/087864(WO,A1)
【文献】特開2006-72442(JP,A)
【文献】特開2003-177818(JP,A)
【文献】特開2021-22071(JP,A)
【文献】特開2013-235320(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G05B 19/05
G05B 23/02
G06F 11/30
H04L 67/12
(57)【特許請求の範囲】
【請求項1】
コンピュータネットワークを介して接続する、プログラマブルロジックコントローラ(以下、PLC)とHMIクライアント機とHMIサーバ機とを備えるSCADAウェブHMIシステムであって、
前記PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合を含むブロックデータを前記コンピュータネットワークへ周期的に送信し、
前記HMIクライアント機は、
ウェブブラウザを表示するモニタと、
表示パーツが配置されたスクリーンを表示する前記ウェブブラウザを実行するように構成されたクライアント用プロセッサと、を備え、
前記ウェブブラウザは、前記ウェブブラウザに現在表示されている前記スクリーンが監視スクリーンである場合に、前記HMIサーバ機から受信した前記入出力信号に応じて前記表示パーツの表示状態を変化させ、
前記HMIサーバ機は、
前記PLCから送信された前記ブロックデータを周期的に受信する受信処理と、
前記受信したブロックデータが前記ウェブブラウザに現在表示されている前記スクリーンに対応する場合に、前記受信したブロックデータから前記入出力信号の集合を抽出する第1フィルタリング処理と、
前記第1フィルタリング処理により抽出された前記入出力信号の集合から、前回値から値に変化があった前記入出力信号を抽出する第2フィルタリング処理と、
前記第2フィルタリング処理により抽出された前記入出力信号から、前記ウェブブラウザに現在表示されている前記スクリーンに配置されている前記表示パーツに対応する前記入出力信号を抽出する第3フィルタリング処理と、
前記第3フィルタリング処理により抽出された前記入出力信号を、前記モニタに表示されている前記ウェブブラウザへ送信する送信処理と、を実行するように構成されたサーバ用プロセッサを備えること、
を特徴とするSCADAウェブHMIシステム。
【請求項2】
前記HMIサーバ機は、前記スクリーンのスクリーン名と前記ブロックデータのブロック番号との対応関係を予め定めた静的情報と、前記ブロック番号と参照カウントとの関係を定めた動的情報と、が格納されたサーバ用メモリをさらに備え、
前記サーバ用プロセッサは、前記HMIクライアント機から変化した前記スクリーンの表示状態を受信し、前記静的情報から前記スクリーンに対応する前記ブロック番号を検索し、前記表示状態がオープンである場合に前記検索されたブロック番号に対応する前記参照カウントをインクリメントし、前記表示状態がクローズである場合に前記ブロック番号に対応する前記参照カウントをデクリメントする、参照カウント更新処理を実行するようにさらに構成され、
前記第1フィルタリング処理は、
前記動的情報に基づいて、前記受信したブロックデータの前記ブロック番号に対応する前記参照カウントが0より大きいか否かを判定し、
前記参照カウントが0より大きい場合に、前記受信したブロックデータから前記入出力信号の集合を抽出し、
前記参照カウントが0以下の場合に、前記受信したブロックデータを破棄すること、
を特徴とする請求項1に記載のSCADAウェブHMIシステム。
【請求項3】
前記ブロックデータは、マルチキャストまたはブロードキャストで前記PLCから周期的に送信されること、
を特徴とする請求項1又は2に記載のSCADAウェブHMIシステム。
【請求項4】
オンラインデータ収集機をさらに備え、
前記オンラインデータ収集機は、
前記PLCから前記ブロックデータを周期的に受信し、
前記ブロックデータに含まれるすべての信号の履歴データを蓄積し、
前記ウェブブラウザからの要求に応じて前記履歴データを送信し、
前記ウェブブラウザは、
前記ウェブブラウザに現在表示されている前記スクリーンが履歴スクリーンである場合に、前記オンラインデータ収集機へ前記履歴データを要求し、
前記オンラインデータ収集機から受信した前記履歴データを前記履歴スクリーンに表示すること、
を特徴とする請求項3に記載のSCADAウェブHMIシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、SCADAウェブHMIシステムに関し、特に大規模システムにおける処理負荷を低減する技術に関する。
【背景技術】
【0002】
SCADA(Supervisory Control And Data Acquisition)は、社会インフラシステムを監視制御する仕組みとして知られている。社会インフラシステムは、鉄鋼圧延システム、電力送変電システム、上下水道処理システム、ビル管理システム、道路システムなどである。
【0003】
SCADAは、産業制御システムの一種であり、コンピュータによるシステム監視とプロセス制御とデータ収集とを行う。SCADAでは、システムの処理性能に合わせた即応性(リアルタイム性)が必要である。
【0004】
SCADAは一般に次のようなサブシステムから構成される。
(1)HMI(Human Machine Interface)
HMIは、監視対象装置のデータをオペレータに提示し、オペレータが監視対象装置を監視し制御できるようにする機構である。
(2)監視制御システム
監視制御システムは、Programmable Logic Controller(PLC)などによって構成される。監視制御システムは、監視対象装置のデータを収集し、監視対象装置に対して制御コマンドを送る。
(3)遠方入出力装置(Remote Input Output:RIO)
遠方入出力装置は、監視対象装置に設置されたセンサと接続し、センサの信号をデジタルのデータに変換し、そのデジタルデータを監視制御システムに送る。
(4)通信基盤
通信基盤は、監視制御システムと遠方入出力装置を接続する。
【0005】
SCADA HMIサブシステムの一例として、特許文献1には、HMIクライアント機とHMIサーバ機とを備えるシステムが開示されている。特許文献1のような従来のSCADAでは、HMIサーバ機が、PLCから受信したデータ(入出力信号、アラーム信号)をHMIクライアント機へ送信し、また収集したすべてのデータを履歴データとして蓄積する。入出力信号は、監視対象装置(産業プラントを構成するフィールド機器群)に関する信号であり、アクチュエータ制御信号およびセンサ検出信号を含む。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したサブシステムの1つであるHMIサブシステムの開発における課題について説明する。
【0008】
大規模システムでは、HMIサブシステムは、20万点以上の多数の信号をPLCと結び付ける場合がある。監視制御とデータ収集の両方を担う従来のHMIサーバ機では、多数の信号をリアルタイムで処理するために、高性能なプロセッサおよび大容量のメモリが必要となる。そのため、大規模システムに適用可能なHMIサブシステムを低コストに実現できることが望まれている。
【0009】
SCADA HMIサブシステムの低コスト化を実現するため、本願発明者は、ブラウザベースのSCADA HMIサブシステムを開発するに至った。これにより、ウェブブラウザ上で動作するウェブアプリケーションとしてHMIスクリーンを実現することができる。
【0010】
ウェブブラウザ上でHMIスクリーンを実現するメリットの1つとして、URL(ポート番号含む)を切り替えることで、容易に異なるWebサーバからデータを取得できる点が挙げられる。すなわち、履歴スクリーンのデータは、全PLCデータを収集し蓄積するオンラインデータ収集機(ODG:Online Data Gathering)から取得し、リアルタイム性が要求される監視スクリーンのデータは、HMIサーバ機から取得することが可能となる。SCADA機能の一部である履歴に関する機能を分離し、オンラインデータ収集機に任せることで、HMIサーバ機は、リアルタイム監視機能に特化できる。低コストのHMIサーバ機で多数の信号を処理するために、入出力信号(アクチュエータ制御信号およびセンサ検出信号を含む)の処理負荷を低減することが望まれる。
【0011】
本発明は、上述のような課題を解決するためになされたもので、大規模システムにおける入出力信号の処理負荷を低減できるSCADAウェブHMIシステムを提供することを目的とする。
【課題を解決するための手段】
【0012】
第1の観点は、SCADAウェブHMIシステムに関連する。
SCADAウェブHMIシステムは、コンピュータネットワークを介して接続する、プログラマブルロジックコントローラ(以下、PLC)とHMIクライアント機とHMIサーバ機とを備える。
前記PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合を含むブロックデータを前記コンピュータネットワークへ周期的に送信する。
前記HMIクライアント機は、
ウェブブラウザを表示するモニタと、
表示パーツが配置されたスクリーンを表示する前記ウェブブラウザを実行するように構成されたクライアント用プロセッサと、を備える。
前記ウェブブラウザは、前記ウェブブラウザに現在表示されている前記スクリーンが監視スクリーンである場合に、前記HMIサーバ機から受信した前記入出力信号に応じて前記表示パーツの表示状態を変化させる。
前記HMIサーバ機は、受信処理と、第1フィルタリング処理と、第2フィルタリング処理と、第3フィルタリング処理と、送信処理と、を実行するように構成されたサーバ用プロセッサを備える。
前記受信処理は、前記PLCから送信された前記ブロックデータを周期的に受信する。
前記第1フィルタリング処理は、前記受信したブロックデータが前記ウェブブラウザに現在表示されている前記スクリーンに対応する場合に、前記受信したブロックデータから前記入出力信号の集合を抽出する。
前記第2フィルタリング処理は、前記第1フィルタリング処理により抽出された前記入出力信号の集合から、前回値から値に変化があった前記入出力信号を抽出する。
前記第3フィルタリング処理は、前記第2フィルタリング処理により抽出された前記入出力信号から、前記ウェブブラウザに現在表示されている前記スクリーンに配置されている前記表示パーツに対応する前記入出力信号を抽出する。
前記送信処理は、前記第3フィルタリング処理により抽出された前記入出力信号を、前記モニタに表示されている前記ウェブブラウザへ送信する。
【0013】
第2の観点は、第1の観点に加えて、次の特徴を更に有する。
前記HMIサーバ機は、静的情報と動的情報が格納されたサーバ用メモリをさらに備える。静的情報は、前記スクリーンのスクリーン名と前記ブロックデータのブロック番号との対応関係を予め定めた情報を含む。動的情報は、前記ブロック番号と参照カウントとの関係を定めた情報を含む。
前記サーバ用プロセッサは、参照カウント更新処理を実行するようにさらに構成される。
前記参照カウント更新処理は、前記HMIクライアント機から変化した前記スクリーンの表示状態を受信し、前記静的情報から前記スクリーンに対応する前記ブロック番号を検索する。
前記参照カウント更新処理は、前記表示状態がオープンである場合に前記検索されたブロック番号に対応する前記参照カウントをインクリメントする。参照カウント更新処理は、前記表示状態がクローズである場合に前記ブロック番号に対応する前記参照カウントをデクリメントする。
前記第1フィルタリング処理は、前記動的情報に基づいて、前記受信したブロックデータの前記ブロック番号に対応する前記参照カウントが0より大きいか否かを判定する。前記第1フィルタリング処理は、前記参照カウントが0より大きい場合に、前記受信したブロックデータから前記入出力信号の集合を抽出する。前記第1フィルタリング処理は、前記参照カウントが0以下の場合に、前記受信したブロックデータを破棄する。
【0014】
第3の観点は、第1又は2の観点に加えて、次の特徴を更に有する。
前記ブロックデータは、マルチキャストまたはブロードキャストで前記PLCから周期的に送信される。
【0015】
第4の観点は、第3の観点のいずれかに加えて、次の特徴を更に有する。
SCADAウェブHMIシステムは、オンラインデータ収集機をさらに備える。
前記オンラインデータ収集機は、前記PLCから前記ブロックデータを周期的に受信し、前記ブロックデータに含まれるすべての信号の履歴データを蓄積する。
前記オンラインデータ収集機は、前記ウェブブラウザからの要求に応じて前記履歴データを送信する。
前記ウェブブラウザは、前記ウェブブラウザに現在表示されている前記スクリーンが履歴スクリーンである場合に、前記オンラインデータ収集機へ前記履歴データを要求する。
前記ウェブブラウザは、前記オンラインデータ収集機から受信した前記履歴データを前記履歴スクリーンに表示する。
【発明の効果】
【0016】
第1の観点によれば、3段階のフィルタリングにより不要なデータ(現在表示されているスクリーンに関係しないデータ)を破棄して以降の処理負荷を低減し、ウェブブラウザへ送信するデータ量を最小限に抑制できる。
【0017】
第2の観点によれば、参照カウントを管理することにより、第1フィルタリング処理を高速に実現することができる。
【0018】
第3の観点によれば、既存の装置に影響を与えることなく、コンピュータネットワークに追加された装置はブロックデータを受信可能となる。
【0019】
第4の観点によれば、オンラインデータ収集機によりすべての信号の履歴データを蓄積でき、HMIクライアント機のウェブブラウザは、履歴データをオンラインデータ収集機から取得できる。そのため、HMIサーバ機は、リアルタイム監視に必要なデータのみを処理すれば足りるため、HMIサーバ機の処理負荷を低減できる。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施の形態に係るSCADAウェブHMIシステムの構成例を説明するための図である。
【
図2】本発明の実施の形態に係るHMIサーバ機が有する機能の概要を例示するブロック図である。
【
図3】本発明の実施の形態に係るHMIサーバ機が有する機能の概要を例示するブロック図である。
【
図4】本発明の実施の形態に係る参照カウント更新処理について説明するためのフローチャートである。
【
図5】本発明の実施の形態に係る第1フィルタリング処理および第2フィルタリング処理について説明するためのフローチャートである。
【
図6】本発明の実施の形態に係る第1フィルタリング処理および第2フィルタリング処理の具体例を説明するための図である。
【
図7】本発明の実施の形態に係る第3フィルタリング処理について説明するためのフローチャートである。
【
図8】本発明の実施の形態に係る第3フィルタリング処理の具体例を説明するための図である。
【
図9】HMIサーバ機、HMIクライアント機、オンラインデータ収集機のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0021】
以下、図面を参照して本発明の実施の形態について詳細に説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【0022】
実施の形態
1.SCADAウェブHMIシステム
図1は、実施の形態に係るSCADAウェブHMIシステムの構成例を説明するための図である。
図1に示すSCADAウェブHMIシステムは、コンピュータネットワーク5を介して相互に接続された、PLC1、HMIサーバ機2、HMIクライアント機3、オンラインデータ収集機4(ODG:Online Data Gathering)を備える。コンピュータネットワーク5は例えばイーサネット(登録商標)である。
【0023】
PLC1は、図示省略する制御ネットワークを介して産業プラントを構成するフィールド機器群(アクチュエータおよびセンサを含む)に接続する。PLC1は、ブロックデータを含むパケットをマルチキャストまたはブロードキャストでコンピュータネットワーク5へ周期的に送信する。ブロックデータは、PLC信号の集合である。1つのブロックデータには数十から数百のPLC信号が含まれる。PLC信号の種類として、入出力信号(アクチュエータ制御信号およびセンサ検出信号を含む)、アラーム信号がある。
【0024】
ブロックデータは、PLC信号の値が前回値から変化したか否かに関わらず周期的に送信される。そのため、送信されたブロックデータを含むパケットがロスした場合であっても、次の送信周期において再送信され、最新状態がHMIサーバ機2およびオンラインデータ収集機4に反映される。
【0025】
HMIクライアント機3は、後述する
図9に示すプロセッサ71、メモリ72、モニタ75を備える。メモリ72に記憶されたプログラムをプロセッサ71が実行することにより、プロセッサ71は、表示パーツが配置されたスクリーン31を表示するウェブブラウザ30を実行するように構成されている。モニタ75は、ウェブブラウザ30を表示する。
【0026】
ウェブブラウザ30は、URLに応じて接続先(HMIサーバ機2、オンラインデータ収集機4)を切り替えて、URLで指定したWebサーバからスクリーン31に関するHTMLドキュメントの各種情報を取得可能である。スクリーン31は、リアルタイム性の要求される監視スクリーン32、履歴データを表示する履歴スクリーン33を含む。
【0027】
ウェブブラウザ30は、ウェブブラウザ30に現在表示されているスクリーン31が監視スクリーン32である場合に、HMIサーバ機2から受信した入出力信号に応じて表示パーツの表示状態を変化させる。表示状態の変化とは、例えば、数値、文字、色、形の変化である。
【0028】
ウェブブラウザ30は、ウェブブラウザ30に現在表示されているスクリーン31が履歴スクリーンである場合に、オンラインデータ収集機4へ履歴データを要求する。ウェブブラウザ30は、オンラインデータ収集機4から受信した履歴データを履歴スクリーン33に表示する。
【0029】
オンラインデータ収集機4は、後述する
図9に示すプロセッサ81、メモリ82を備える。メモリ82に記憶されたプログラムをプロセッサ81が実行することにより、プロセッサ81は、Webサーバ処理と履歴データ管理処理とを実行するように構成されている。
【0030】
オンラインデータ収集機4は、PLC1からブロックデータを周期的に受信する。オンラインデータ収集機4の履歴データ管理処理は、受信したブロックデータに含まれるすべての信号の履歴データをメモリ82(データベースを含む)に蓄積する。オンラインデータ収集機4のWebサーバ処理は、ウェブブラウザ30からの要求に応じて履歴データを送信する。
【0031】
2.HMIサーバ機の機能概要
図2および
図3は、実施の形態に係るHMIサーバ機2が有する機能の概要を例示するブロック図である。HMIサーバ機2は、後述する
図9に示す各種処理を実行するプロセッサ61、各種情報が格納されるメモリ62を備える。メモリ62に記憶されたプログラムをプロセッサ61が実行することにより、プロセッサ61は、入出力管理プロセス6、HMIサーバプロセス7、アラーム管理プロセス8等を実行する。入出力管理プロセス6とHMIサーバプロセス7とアラーム管理プロセス8とはプロセス間通信により相互にデータを交換可能である。入出力管理プロセス6は、参照カウント更新スレッド6a、マルチキャストレシーバースレッド6b、およびアラーム生成スレッド6c、を並列に実行する。
【0032】
図2に示す入出力管理プロセス6は、PLC1からブロックデータを周期的に受信し、ブロックデータからウェブブラウザ30に現在表示されているスクリーン31に関する入出力信号のみを抽出して、HMIサーバプロセス7へ送る。
【0033】
入出力管理プロセス6は、参照カウント更新処理10と、受信処理16と、第1フィルタリング処理17と、第2フィルタリング処理18と、を実行する。
【0034】
参照カウント更新処理10は、ウェブブラウザ30に現在表示されているスクリーン31に対応するブロックデータを特定するための第1フィルタリング情報を管理する。第1フィルタリング情報は、静的情報13と動的情報14とを含み、メモリ62に格納されている。静的情報13(ScreenToBlkNoMap)は、スクリーン名とブロック番号との対応関係を予め定めた情報である。動的情報14(BlkNoRefCountTable)は、ブロック番号と参照カウントとの関係を定めた情報である。
【0035】
受信処理16は、PLC2から送信されたブロックデータを周期的に受信する。周期は例えば数ミリ秒~数百ミリ秒である。
【0036】
第1フィルタリング処理17は、受信したブロックデータがウェブブラウザ30に現在表示されているスクリーン31に対応する場合に、受信したブロックデータから入出力信号の集合を抽出する。
【0037】
第2フィルタリング処理18は、第1フィルタリング処理17により抽出された入出力信号の集合から、前回値から値に変化があった入出力信号を抽出する。
【0038】
図3に示すHMIサーバプロセス7は、Webサーバ処理と、ブラウザ監視処理24と、第3フィルタリング処理27と、送信処理29と、を実行する。
【0039】
ブラウザ監視処理24は、HMIクライアント機3で実行されているウェブブラウザ30の状態を監視し、ブラウザ状態情報25に記録する。ブラウザ状態情報25は、ウェブブラウザ30の名称と当該ウェブブラウザ30に現在表示されているスクリーン31の名称との対応関係を定めた情報を含み、メモリ62に格納されている。また、ブラウザ監視処理24は、ウェブブラウザ30上で表示状態が変更されたスクリーン31のスクリーン名および表示状態(オープンまたはクローズ)を含むスクリーン開閉信号を入出力管理プロセス6へ送る。
【0040】
第3フィルタリング処理27は、第2フィルタリング処理18により抽出された入出力信号から、ウェブブラウザ30に現在表示されているスクリーン31に配置されている表示パーツに対応する入出力信号を抽出する。
【0041】
送信処理29は、第3フィルタリング処理27により抽出された入出力信号を、モニタ75(
図9)に表示されているウェブブラウザ30へ送信する。
【0042】
3.参照カウント更新処理
図4は、参照カウント更新処理10(
図2)について説明するためのフローチャートである。
図4に示されるフローは、一定サイクル毎に繰り返し実行される。
一例として、HMIクライアント機3のウェブブラウザ30にスクリーン31(スクリーン名「G1」)が新たに表示されたものとする。このとき、ブラウザ監視処理24は、スクリーン名「G1」と表示状態「オープン」とを含むスクリーン開閉信号を入出力管理プロセス6(参照カウント更新処理10)へ送る。
【0043】
ステップS100において、参照カウント更新処理10は、HMIサーバプロセス7(ブラウザ監視処理24)からスクリーン名と表示状態とを含むスクリーン開閉信号を受信する。
上述した例では、参照カウント更新処理10は、スクリーン名「G1」と表示状態「オープン」を受信する。
【0044】
ステップS110において、参照カウント更新処理10は、上述した静的情報13からスクリーン名に対応するブロック番号を検索する。
例えば、静的情報13に、スクリーン名「G1」とブロック番号「PLC/BLK 1」との対応関係が予め定められているとする。この場合、参照カウント更新処理10は、スクリーン名「G1」に関連するブロックデータのブロック番号として「PLC/BLK 1」を検索する。
【0045】
ステップS120において、参照カウント更新処理10は、スクリーン開閉信号の表示状態がオープンであるか、クローズであるかを判定する。表示状態がオープンである場合はステップS130の処理が実行される。表示状態がクローズである場合はステップS140の処理が実行される。
【0046】
表示状態がオープンである場合、ステップS130において、参照カウント更新処理10は、検索されたブロック番号に対応する動的情報14の参照カウントをインクリメントする。
上述した例では、スクリーン名「G1」の表示状態が「オープン」である場合、ブロック番号「PLC/BLK 1」に対応する参照カウントがインクリメントされ「0」から「1」に変化する。
【0047】
表示状態がクローズである場合、ステップS140において、参照カウント更新処理10は、検索されたブロック番号に対応する動的情報14の参照カウントをデクリメントする。
【0048】
なお、あるウェブブラウザ30でスクリーン「G1」の表示状態が「オープン」である場合に、さらに他のウェブブラウザ30でスクリーン「G1」の表示状態が「オープン」になった場合は、参照カウントはインクリメントされ「1」から「2」に変化する。
【0049】
4.第1フィルタリング処理および第2フィルタリング処理
次に、
図5および
図6を参照して、
図2に示す第1フィルタリング処理17および第2フィルタリング処理18について説明する。
図5は、第1フィルタリング処理17および第2フィルタリング処理18について説明するためのフローチャートである。
図6は、第1フィルタリング処理17および第2フィルタリング処理18の具体例を説明するための図である。
図5に示されるフローは、一定サイクル毎に繰り返し実行される。
【0050】
ステップS200において、受信処理16は、PLC2から送信されたブロックデータを周期的に受信する。
図6に示す例では、受信処理16は、1回目の周期でブロックデータ(ブロック番号「PLC/BLK 1」)を受信し、2回目の周期でブロックデータ(ブロック番号「PLC/BLK 2」)を受信する。
【0051】
ステップS210において、第1フィルタリング処理17は、動的情報14に基づいて、受信したブロックデータのブロック番号に対応する参照カウントnが0より大きいか否かを判定する。これにより参照カウントnが0より大きいブロックデータのみが抽出される。参照カウントnが0より大きい場合、受信したブロックデータについてステップS220の処理が実行される。一方、参照カウントnが0以下の場合、受信したブロックデータは破棄され、本フローは終了される。ステップS210の判定条件が成立しない場合は、いずれのウェブブラウザ30にも当該ブロックデータに含まれる入出力信号が表示されないため、当該ブロックデータを破棄することができ、以降の処理負荷を削減できる。
図6に示す例では、動的情報14において、ブロックデータ(ブロック番号「PLC/BLK 1」)に関する参照カウントnは1であり、ステップS210の判定条件が成立する。そのため、当該ブロックデータについて次にステップS220の処理が実行される。一方、動的情報14において、ブロックデータ(ブロック番号「PLC/BLK 2」)に関する参照カウントnが0であり、当該ブロックデータは破棄され、次のブロックデータの受信を待つ。
【0052】
ステップS220において、第1フィルタリング処理17は、受信したブロックデータをアンパックして、当該ブロックデータから入出力信号の集合を抽出する。なお、入出力信号の値の型には、ビット型、整数型、浮動小数点型がある(
図2)。
図6に示す例では、ブロックデータ(ブロック番号「PLC/BLK 1」)がアンパックされ、ビット型の4つの入出力信号(P1_1,P1_2,P2_1,P2_2)が抽出される。
【0053】
ステップS230において、第2フィルタリング処理18は、第2フィルタリング情報に基づいて、第1フィルタリング処理17により抽出された入出力信号の集合から、前回値から値に変化があった入出力信号のみを抽出する。第2フィルタリング情報は、ブロックデータに含まれる各入出力信号の前回値を含み、メモリ62に格納されている。入出力信号の前回値と今回値(最新値)とが異なる場合には現在表示されているスクリーン31に反映させる必要がある。そのため、変化があった入出力信号をHMIサーバプロセス7へ送る必要がある。一方、入出力信号の前回値と今回値とが同じである場合には現在表示されているスクリーン31の表示内容は変化しないため、その入出力信号を破棄することができ、以降の処理負荷を削減できる。
図6に示す例では、上述した4つの入出力信号(P1_1,P1_2,P2_1,P2_2)のうち、2つの入出力信号(P1_1,P1_2)が前回値から値に変化があった信号である。一方、残りの2つの入出力信号(P1_2,P2_2)は前回値と今回値が同じであるため破棄される。
【0054】
ステップS240において、第2フィルタリング処理18は、前回値から値に変化があった入出力信号をHMIサーバプロセス7へ送信する。
図6に示す例では、2つの入出力信号(P1_1,P1_2)がHMIサーバプロセス7へ送信される。
【0055】
5.第3フィルタリング処理
次に、
図7および
図8を参照して、
図3に示す第3フィルタリング処理27について説明する。
図7は、第3フィルタリング処理27について説明するためのフローチャートである。
図8は、第3フィルタリング処理27の具体例を説明するための図である。
図7に示されるフローは、一定サイクル毎に繰り返し実行される。
【0056】
ステップS300において、HMIサーバプロセス7は、入出力管理プロセス6の第2フィルタリング処理18により抽出された入出力信号を受信する。
図8に示す例では、2つの入出力信号(P1_1,P1_2)が入力される。
【0057】
次に、ステップS310において、第3フィルタリング処理27が実行される。第3フィルタリング処理27には、第3フィルタリング情報が用いられる。第3フィルタリング情報は、ブラウザ状態情報25とスクリーン情報28とを含み、メモリ62に格納されている。ブラウザ状態情報25は、ウェブブラウザ30の名称と当該ウェブブラウザ30に現在表示されているスクリーン31の名称とを対応関係を定めた情報を含む。スクリーン情報28は、すべてのスクリーンに関して、スクリーン31のスクリーン名と、スクリーン31に配置された表示パーツのパーツ名と、当該表示パーツの状態を変化させる入出力信号の入出力信号名と、を予め関連付けた情報を含む。なお、表示パーツ名と入出力信号名は同じであってもよい。
【0058】
具体的には、まず、第3フィルタリング処理27は、スクリーン情報28に基づいて、第2フィルタリング処理18により抽出された入出力信号に対応する、表示パーツ名とスクリーン名を検索する。さらに、第3フィルタリング処理27は、ブラウザ状態情報25に基づいて、検索したスクリーン名に対応するウェブブラウザ名を検索する。これらの検索結果に基づき、第3フィルタリング処理27は、第2フィルタリング処理18により抽出された入出力信号から、ウェブブラウザ30に現在表示されているスクリーン31に配置されている表示パーツに対応する入出力信号を抽出する。
図8に示す例では、入出力信号名「P1_1」に対応する表示パーツ名は「G1_1」であり、スクリーン名は「G1」である。また、入出力信号「P2_1」に対応する表示パーツ名は「G2_1」であり、画面名は「G2」である。ブラウザ状態情報25には、ウェブブラウザ30(ウェブブラウザ名「A1」)にスクリーン31(スクリーン名「G1」)が現在表示されている状態であることが登録されている。そのため、スクリーン31(スクリーン名「G1」)に配置された表示パーツ(表示パーツ名「G1_1」)に対応する入出力信号(入出力信号名「P1_1」)のみが表示に必要な情報である。一方、現在表示されているスクリーン31(スクリーン名「G1」)に関係しない入出力信号(入出力信号名「P2_1」)は、いずれのウェブブラウザ30にも表示されないため、その入出力信号を破棄することができ、以降の処理負荷を削減できる。
【0059】
ステップS320において、送信処理29は、第3フィルタリング処理27により抽出された入出力信号を、モニタ75(
図9)に表示されているウェブブラウザ30へ送信する。
図8に示す例では、ウェブブラウザ30(ウェブブラウザ名「A1」)へ、現在表示されているスクリーン31の表示パーツ(表示パーツ名「G1_1」)に対応する入出力信号(入出力信号名「P1_1」)のみが送信される。
【0060】
5.効果
以上説明したように、HMIサーバ機2は、入出力信号をウェブブラウザ30のスクリーン31に表示するまでに上述した3つのフィルタリング処理を実行する。
第1のフィルタリング処理によれば、ウェブブラウザ30に現在表示されているスクリーン31に関係のあるブロックデータのみを抽出できる。不要なブロックデータを受信段階で破棄できるため、特に、大規模システムにおいて処理負荷の低減効果が大きい。
第2のフィルタリング処理によれば、前回値から変化があった入出力信号のみを抽出できる。第3のフィルタリング処理によれば、ウェブブラウザ30に現在表示されているスクリーン31に配置されている表示パーツに対応する入出力信号のみを抽出できる。したがって、各フィルタリング処理において不要なデータ(現在表示されているスクリーンに関係しないデータ)を破棄して以降の処理負荷を低減し、ウェブブラウザへ送信するデータ量を削減できる。
【0061】
また、オンラインデータ収集機4によりすべての信号の履歴データを蓄積でき、HMIクライアント機3のウェブブラウザ30は、履歴データをオンラインデータ収集機4から取得できる。そのため、HMIサーバ機2は、リアルタイム監視に必要なデータのみを処理すれば足りるため、HMIサーバ機の処理負荷を低減できる。
【0062】
6.ハードウェア構成例
図9は、HMIサーバ機2、HMIクライアント機3、オンラインデータ収集機4のハードウェア構成例を示すブロック図である。
【0063】
上述したHMIサーバ機2の各処理は、処理回路により実現される。処理回路は、プロセッサ61と、メモリ62と、ネットワークインタフェース63とが接続して構成されている。プロセッサ61は、メモリ62に記憶された各種プログラムを実行することにより、HMIサーバ機2の各機能を実現する。メモリ62は、主記憶装置および補助記憶装置を含む。
【0064】
上述したHMIクライアント機3の各処理は、処理回路により実現される。処理回路は、プロセッサ71と、メモリ72と、ネットワークインタフェース73と、入力インタフェース74と、少なくとも一つのモニタ75とが接続して構成されている。プロセッサ71は、メモリ72に記憶された各種プログラムを実行することにより、HMIクライアント機3の各機能を実現する。メモリ72は、主記憶装置および補助記憶装置を含む。入力インタフェース74は、キーボード、マウス、タッチパネル等の入力デバイスである。モニタ75は複数台設けられてもよい。
【0065】
上述したオンラインデータ収集機4の各処理は、処理回路により実現される。処理回路は、プロセッサ81と、メモリ82と、ネットワークインタフェース83とが接続して構成されている。プロセッサ81は、メモリ82に記憶された各種プログラムを実行することにより、オンラインデータ収集機4の各機能を実現する。メモリ82は、主記憶装置および補助記憶装置を含む。
【0066】
以上、本発明の実施の形態について説明したが、本発明は、上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。上述した実施の形態において各要素の個数、数量、量、範囲等の数に言及した場合、特に明示した場合や原理的に明らかにその数に特定される場合を除いて、その言及した数にこの発明が限定されるものではない。また、上述した実施の形態において説明する構造等は、特に明示した場合や明らかに原理的にそれに特定される場合を除いて、この発明に必ずしも必須のものではない。
【符号の説明】
【0067】
1 プログラマブルロジックコントローラ(PLC)
2 HMIサーバ機
3 HMIクライアント機
4 オンラインデータ収集機
5 コンピュータネットワーク
6 入出力管理プロセス
6a 参照カウント更新スレッド
6b マルチキャストレシーバースレッド
6c アラーム生成スレッド
7 HMIサーバプロセス
8 アラーム管理プロセス
10 参照カウント更新処理
13 静的情報
14 動的情報
16 受信処理
17 第1フィルタリング処理
18 第2フィルタリング処理
24 ブラウザ監視処理
25 ブラウザ状態情報
27 第3フィルタリング処理
28 スクリーン情報
29 送信処理
30 ウェブブラウザ
31 スクリーン
32 監視スクリーン
33 履歴スクリーン
61、71、81 プロセッサ
62、72、82 メモリ
63、73、83 ネットワークインタフェース
74 入力インタフェース
75 モニタ