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
  • 特許-SCADAウェブHMIシステム 図9
  • 特許-SCADAウェブHMIシステム 図10
< >
(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
【FI】
G06Q10/00
G05B19/05
G05B23/02 301X
【請求項の数】 5
(21)【出願番号】P 2023526764
(86)(22)【出願日】2021-06-10
(86)【国際出願番号】 JP2021022152
(87)【国際公開番号】W WO2022259473
(87)【国際公開日】2022-12-15
【審査請求日】2023-02-08
(73)【特許権者】
【識別番号】501137636
【氏名又は名称】東芝三菱電機産業システム株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】清水 亮
(72)【発明者】
【氏名】野島 章
(72)【発明者】
【氏名】清水 伸夫
【審査官】加内 慎也
(56)【参考文献】
【文献】国際公開第2021/015022(WO,A1)
【文献】国際公開第2021/015024(WO,A1)
【文献】特開2017-22591(JP,A)
【文献】国際公開第2018/087864(WO,A1)
【文献】特開2003-280732(JP,A)
【文献】特開2004-171282(JP,A)
【文献】特開2004-139297(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G05B 19/05
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
コンピュータネットワークを介して接続する、プログラマブルロジックコントローラ(以下、PLC)とHMIクライアント機とHMIサーバ機とを備えるSCADAウェブHMIシステムであって、
前記PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合およびアラーム信号の集合の少なくとも一方を含むブロックデータを第1周期ごとに前記コンピュータネットワークへ送信し、
前記HMIクライアント機は、
ウェブブラウザを表示するモニタと、
アラームパーツが配置されたスクリーンを表示する前記ウェブブラウザを実行するように構成されたクライアント用プロセッサと、を備え、
前記ウェブブラウザは、前記HMIサーバ機から受信した前記アラーム信号に応じて前記アラームパーツの表示状態を変化させ、
前記HMIサーバ機は、
アラームバッファメモリが格納されたサーバ用メモリと、
サーバ用プロセッサと、を備え、
前記サーバ用プロセッサは、
前記PLCから送信された前記ブロックデータを前記第1周期ごとに受信する受信処理と、
前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、少なくとも前記ブロックデータに含まれている前記アラーム信号の集合を前記アラームバッファメモリに一時的に蓄積するバッファリング処理と、
前記第1周期よりも長い第2周期ごとに前記アラームバッファメモリに蓄積されている前記アラーム信号の集合を取り出し、前記取り出されたアラーム信号の集合のうち、前回値から値に変化があった前記アラーム信号を抽出するアラームフィルタリング処理と、
前記抽出されたアラーム信号を、前記モニタに表示されている前記ウェブブラウザへ送信する送信処理と、を実行するように構成されること、
を特徴とするSCADAウェブHMIシステム。
【請求項2】
前記バッファリング処理は、前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、前記受信したブロックデータを前記アラームバッファメモリに一時的に蓄積し、
前記アラームフィルタリング処理は、前記第2周期ごとに前記アラームバッファメモリに蓄積されている前記ブロックデータを取り出し、前記取り出されたブロックデータからアラーム信号の集合を抽出し、前記抽出されたアラーム信号の集合のうち、前回値から値に変化があった前記アラーム信号を抽出すること、
を特徴とする請求項1に記載のSCADAウェブHMIシステム。
【請求項3】
前記バッファリング処理は、前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、前記ブロックデータに含まれている前記アラーム信号の集合を抽出し、前記抽出されたアラーム信号の集合を前記アラームバッファメモリに一時的に蓄積すること、
を特徴とする請求項1に記載のSCADAウェブHMIシステム。
【請求項4】
前記ブロックデータは、マルチキャストまたはブロードキャストで前記PLCから前記第1周期ごとに送信されること、
を特徴とする請求項1乃至3のいずれか1項に記載のSCADAウェブHMIシステム。
【請求項5】
オンラインデータ収集機をさらに備え、
前記オンラインデータ収集機は、
前記PLCから前記ブロックデータを周期的に受信し、
前記ブロックデータに含まれるすべての信号の履歴データを蓄積し、
前記ウェブブラウザからの要求に応じて前記履歴データを送信し、
前記ウェブブラウザは、
前記ウェブブラウザに現在表示されている前記スクリーンが履歴スクリーンである場合に、前記オンラインデータ収集機へ前記履歴データを要求し、
前記オンラインデータ収集機から受信した前記履歴データを前記履歴スクリーンに表示すること、
を特徴とする請求項4に記載の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】
【文献】日本特開2017-27211号公報
【発明の概要】
【発明が解決しようとする課題】
【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】
従来のHMIサーバ機では、入出力信号もアラーム信号も同等にリアルタイムに処理を実行していた。確かに、入出力信号は、人間の操作を介さずに監視スクリーンに極力速く(数ミリ秒~数百ミリ秒)反映されなければならない。しかしながら、アラーム信号は、HMI操作者への要求指示なので、人間が対応できないほど頻繁な表示変更は必要なく、入出力信号ほどのリアルタイム性は必要ない。
【0012】
本発明は、上述のような課題を解決するためになされたもので、大規模システムにおけるアラーム信号の処理負荷を低減できるSCADAウェブHMIシステムを提供することを目的とする。
【課題を解決するための手段】
【0013】
第1の観点は、SCADAウェブHMIシステムに関連する。
SCADAウェブHMIシステムは、コンピュータネットワークを介して接続する、プログラマブルロジックコントローラ(以下、PLC)とHMIクライアント機とHMIサーバ機とを備える。
前記PLCは、産業プラントを構成するフィールド機器群に関する入出力信号の集合およびアラーム信号の集合の少なくとも一方を含むブロックデータを第1周期ごとに前記コンピュータネットワークへ送信する。
前記HMIクライアント機は、
ウェブブラウザを表示するモニタと、
アラームパーツが配置されたスクリーンを表示する前記ウェブブラウザを実行するように構成されたクライアント用プロセッサと、を備える。
前記ウェブブラウザは、前記HMIサーバ機から受信した前記アラーム信号に応じて前記アラームパーツの表示状態を変化させる。
前記HMIサーバ機は、
アラームバッファメモリが格納されたサーバ用メモリと、
アラーム管理を行うサーバ用プロセッサと、を備える。
前記サーバ用プロセッサは、受信処理と、バッファリング処理と、アラームフィルタリング処理と、送信処理と、を実行するように構成される。
前記受信処理は、前記PLCから送信された前記ブロックデータを前記第1周期ごとに受信する。
前記バッファリング処理は、前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、少なくとも前記ブロックデータに含まれている前記アラーム信号の集合を前記アラームバッファメモリに一時的に蓄積する。
前記アラームフィルタリング処理は、前記第1周期よりも長い第2周期ごとに前記アラームバッファメモリに蓄積されている前記アラーム信号の集合を取り出し、前記取り出されたアラーム信号の集合のうち、前回値から値に変化があった前記アラーム信号を抽出する。
前記送信処理は、前記抽出されたアラーム信号を、前記モニタに表示されている前記ウェブブラウザへ送信する。
【0014】
第2の観点は、第1の観点に加えて、次の特徴を更に有する。
前記バッファリング処理は、前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、前記受信したブロックデータを前記アラームバッファメモリに一時的に蓄積する。
前記アラームフィルタリング処理は、前記第2周期ごとに前記アラームバッファメモリに蓄積されている前記ブロックデータを取り出す。前記アラームフィルタリング処理は、前記取り出されたブロックデータからアラーム信号の集合を抽出し、前記抽出されたアラーム信号の集合のうち、前回値から値に変化があった前記アラーム信号を抽出する。
【0015】
第3の観点は、第1の観点に加えて、次の特徴を更に有する。
前記バッファリング処理は、前記受信したブロックデータに前記アラーム信号の集合が含まれている場合に、前記ブロックデータに含まれている前記アラーム信号の集合を抽出し、前記抽出されたアラーム信号の集合を前記アラームバッファメモリに一時的に蓄積する。
【0016】
第4の観点は、第1乃至第3の観点のいずれかに加えて、次の特徴を更に有する。
前記ブロックデータは、マルチキャストまたはブロードキャストで前記PLCから前記第1周期ごとに送信される。
【0017】
第5の観点は、第4の観点に加えて、次の特徴を更に有する。
SCADAウェブHMIシステムは、オンラインデータ収集機をさらに備える。
前記オンラインデータ収集機は、前記PLCから前記ブロックデータを周期的に受信し、前記ブロックデータに含まれるすべての信号の履歴データを蓄積する。
前記オンラインデータ収集機は、前記ウェブブラウザからの要求に応じて前記履歴データを送信する。
前記ウェブブラウザは、前記ウェブブラウザに現在表示されている前記スクリーンが履歴スクリーンである場合に、前記オンラインデータ収集機へ前記履歴データを要求する。
前記ウェブブラウザは、前記オンラインデータ収集機から受信した前記履歴データを前記履歴スクリーンに表示する。
【発明の効果】
【0018】
第1の観点によれば、入出力信号ほどのリアルタイム性が要求されないアラーム信号について、ブロックデータの受信周期(第1周期)よりも長い周期(第2周期)で処理を実行することでデータ更新周期を最適化するとともに、処理負荷を低減できる。また、アラーム信号を含まないブロックデータは破棄され処理されないため、処理負荷を低減できる。
【0019】
第2の観点によれば、ブロックデータの受信周期(第1周期)においてアラーム信号を含むブロックデータをアラームバッファメモリに一時的に蓄積し、第2周期において蓄積されたブロックデータかアラーム信号を抽出する。そのため、受信時の処理負荷を低減できる。
【0020】
第3の観点によれば、ブロックデータの受信周期(第1周期)においてブロックデータから抽出したアラーム信号をアラームバッファメモリに一時的に蓄積する。そのため、アラームバッファメモリのサイズを小さくでき、メモリ使用量を低減できる。
【0021】
第4の観点によれば、既存の装置に影響を与えることなく、コンピュータネットワークに追加された装置はブロックデータを受信可能となる。
【0022】
第5の観点によれば、オンラインデータ収集機によりすべての信号の履歴データを蓄積でき、HMIクライアント機のウェブブラウザは、履歴データをオンラインデータ収集機から取得できる。そのため、HMIサーバ機は、リアルタイム監視に必要なデータのみを処理すれば足りるため、HMIサーバ機の処理負荷を低減できる。
【図面の簡単な説明】
【0023】
図1】本発明の実施の形態1に係るSCADAウェブHMIシステムの構成例を説明するための図である。
図2】本発明の実施の形態1に係るHMIサーバ機が有する機能の概要を例示するブロック図である。
図3】本発明の実施の形態1に係るバッファリング処理について説明するためのフローチャートである。
図4】本発明の実施の形態1に係るアラームフィルタリング処理について説明するためのフローチャートである。
図5】本発明の実施の形態1に係るバッファリング処理およびアラームフィルタリング処理の具体例を説明するための図である。
図6】本発明の実施の形態2に係るHMIサーバ機が有する機能の概要を例示するブロック図である。
図7】本発明の実施の形態2に係るバッファリング処理について説明するためのフローチャートである。
図8】本発明の実施の形態2に係るアラームフィルタリング処理について説明するためのフローチャートである。
図9】本発明の実施の形態2に係るバッファリング処理およびアラームフィルタリング処理の具体例を説明するための図である。
図10】HMIサーバ機、HMIクライアント機、オンラインデータ収集機のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、図面を参照して本発明の実施の形態について詳細に説明する。尚、各図において共通する要素には、同一の符号を付して重複する説明を省略する。
【0025】
実施の形態1.
1-1.SCADAウェブHMIシステム
図1は、実施の形態1に係るSCADAウェブHMIシステムの構成例を説明するための図である。図1に示すSCADAウェブHMIシステムは、コンピュータネットワーク5を介して相互に接続された、PLC1、HMIサーバ機2、HMIクライアント機3、オンラインデータ収集機4(ODG:Online Data Gathering)を備える。コンピュータネットワーク5は例えばイーサネット(登録商標)である。
【0026】
PLC1は、図示省略する制御ネットワークを介して産業プラントを構成するフィールド機器群(アクチュエータおよびセンサを含む)に接続する。PLC1は、ブロックデータを含むパケットをマルチキャストまたはブロードキャストでコンピュータネットワーク5へ第1周期ごとに送信する。ブロックデータは、PLC信号の集合である。1つのブロックデータには数十から数百のPLC信号が含まれる。PLC信号の種類として、入出力信号(アクチュエータ制御信号およびセンサ検出信号を含む)、アラーム信号がある。ブロックデータには入出力信号の集合およびアラーム信号の集合の少なくとも一方が含まれる。アラーム信号の総数は入出力信号の総数に比して少ない。
【0027】
ブロックデータは、PLC信号の値が前回値から変化したか否かに関わらず周期的に送信される。そのため、送信されたブロックデータを含むパケットがロスした場合であっても、次の送信周期において再送信され、最新状態がHMIサーバ機2およびオンラインデータ収集機4に反映される。
【0028】
HMIクライアント機3は、後述する図10に示すプロセッサ71、メモリ72、モニタ75を備える。メモリ72に記憶されたプログラムをプロセッサ71が実行することにより、プロセッサ71は、表示パーツが配置されたスクリーン31を表示するウェブブラウザ30を実行するように構成されている。モニタ75は、ウェブブラウザ30を表示する。
【0029】
ウェブブラウザ30は、URLに応じて接続先(HMIサーバ機2、オンラインデータ収集機4)を切り替えて、URLで指定したWebサーバからスクリーン31に関するHTMLドキュメントの各種情報を取得可能である。スクリーン31は、リアルタイム性の要求される監視スクリーン32、履歴データを表示する履歴スクリーン33を含む。
【0030】
ウェブブラウザ30は、ウェブブラウザ30に現在表示されているスクリーン31が監視スクリーン32である場合に、HMIサーバ機2から受信した入出力信号に応じて表示パーツの表示状態を変化させる。表示状態の変化とは、例えば、数値、文字、色、形の変化である。また、ウェブブラウザ30は、HMIサーバ機2から受信したアラーム信号に応じてスクリーン31に配置されたアラームパーツの表示状態を変化させる。
【0031】
ウェブブラウザ30は、ウェブブラウザ30に現在表示されているスクリーン31が履歴スクリーンである場合に、オンラインデータ収集機4へ履歴データを要求する。ウェブブラウザ30は、オンラインデータ収集機4から受信した履歴データを履歴スクリーン33に表示する。
【0032】
オンラインデータ収集機4は、後述する図10に示すプロセッサ81、メモリ82を備える。メモリ82に記憶されたプログラムをプロセッサ81が実行することにより、プロセッサ81は、Webサーバ処理と履歴データ管理処理とを実行するように構成されている。
【0033】
オンラインデータ収集機4は、PLC1からブロックデータを周期的に受信する。オンラインデータ収集機4の履歴データ管理処理は、受信したブロックデータに含まれるすべての信号の履歴データをメモリ82(データベースを含む)に蓄積する。オンラインデータ収集機4のWebサーバ処理は、ウェブブラウザ30からの要求に応じて履歴データを送信する。また、オンラインデータ収集機4は、HMIサーバ機2からアラームパケットを受信して蓄積する。
【0034】
1-2.実施の形態1に係るHMIサーバ機の機能概要
図2は、実施の形態1に係るHMIサーバ機2が有する機能の概要を例示するブロック図である。HMIサーバ機2は、後述する図10に示す各種処理を実行するプロセッサ61、各種情報が格納されるメモリ62を備える。メモリ62に記憶されたプログラムをプロセッサ61が実行することにより、プロセッサ61は、入出力管理プロセス6、HMIサーバプロセス7、アラーム管理プロセス8等を実行する。入出力管理プロセス6とHMIサーバプロセス7とアラーム管理プロセス8とはプロセス間通信により相互にデータを交換可能である。アラーム管理プロセス8は、生成されたアラームパケットをHMIサーバプロセス7およびオンラインデータ収集機4へ送る。入出力管理プロセス6は、参照カウント更新スレッド6a、マルチキャストレシーバースレッド6b、およびアラーム生成スレッド6c、を並列に実行する。
【0035】
また、メモリ62には、アラームブロック情報15と、アラームバッファメモリ20とが格納されている。アラームブロック情報15は、アラーム信号が含まれるブロックデータのブロック番号を予め定めたリストである。アラームバッファメモリ20は、データを一時的に蓄積可能な保管領域である。
【0036】
図2に示す入出力管理プロセス6は、第1周期ごとにPLC1からブロックデータを受信し、ブロックデータからウェブブラウザ30に現在表示されているスクリーン31に関する入出力信号のみを抽出して、HMIサーバプロセス7へ送る。すなわち、高いリアルタイム性が要求される入出力信号は第1周期ごとに処理される。
【0037】
入出力管理プロセス6は、アラーム信号に関して、受信処理16と、バッファリング処理19と、アラームフィルタリング処理21を実行する。
【0038】
受信処理16は、PLCから送信されたブロックデータを第1周期ごとに受信する。第1周期は、例えば数ミリ秒~数百ミリ秒である。
【0039】
バッファリング処理19は、受信したブロックデータにアラーム信号の集合が含まれている場合に、少なくともブロックデータに含まれているアラーム信号の集合をアラームバッファメモリ20に一時的に蓄積する。
【0040】
アラームフィルタリング処理21は、第1周期よりも長い第2周期ごとにアラームバッファメモリ20に蓄積されているアラーム信号の集合を取り出す。さらに、アラームフィルタリング処理21は、取り出されたアラーム信号の集合のうち、前回値から値に変化があったアラーム信号を抽出する。第2周期は、例えば数秒である。
【0041】
HMIサーバプロセス7は、Webサーバ処理と、送信処理22とを実行する。
送信処理22は、抽出された入出力信号およびアラーム信号を、モニタ75(図10)に表示されているウェブブラウザ30へ送信する。
【0042】
1-3.実施の形態1に係るバッファリング処理
まず図3および図5を参照して、図2に示すバッファリング処理19について説明する。図3は、実施の形態1に係るバッファリング処理19について説明するためのフローチャートである。図5は、実施の形態1に係るバッファリング処理19の具体例を説明するための図である。図3に示されるフローは、第1周期ごとに繰り返し実行される。
【0043】
ステップS100において、受信処理16は、PLCから送信されたブロックデータを第1周期ごとに受信する。
図5に示す例では、受信処理16は、1回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 1」)を受信する。受信処理16は、2回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 2」)を受信する。受信処理16は、3回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 3」)を受信する。
【0044】
ステップS110において、バッファリング処理19は、アラームブロック情報15を参照して、受信したブロックデータにアラーム信号の集合が含まれているか否かを判定する。これによりアラーム信号を含むブロックデータのみが抽出される。受信したブロックデータにアラーム信号の集合が含まれている場合、受信したブロックデータについてステップS120の処理が実行される。一方、受信したブロックデータにアラーム信号の集合が含まれていない場合、受信したブロックデータは破棄され、本フローは終了される。ステップS110の判定条件が成立しない場合は、ブロックデータを破棄することができ、以降の処理負荷を削減できる。
図5に示す例では、アラームブロック情報15には、アラーム信号が含まれるブロックデータのブロック番号として、「PLC/BLK 1」と「PLC/BLK 2」が登録されている。そのため、アラームブロック情報15に登録されているブロック番号「PLC/BLK 1」および「PLC/BLK 2」のブロックデータについては次にステップS20の処理が実行される。一方、アラームブロック情報15に登録されていないブロック番号「PLC/BLK 3」のブロックデータは破棄される。
【0045】
ステップS120において、バッファリング処理19は、受信したブロックデータをアラームバッファメモリ20に一時的に蓄積する。アラームバッファメモリ20にブロックデータをコピーする処理時間は十分短く、また、アラーム信号の総数は入出力信号の総数に比して少ないため、入出力信号のリアルタイム処理を阻害することはない。
図5に示す例では、2つのブロックデータ(ブロック番号「PLC/BLK 1」および「PLC/BLK 2」)がアラームバッファメモリ20に一時的に蓄積される。
【0046】
1-4.実施の形態1に係るアラームフィルタリング処理
次に図4および図5を参照して、図2に示すアラームフィルタリング処理21について説明する。図4は、実施の形態1に係るアラームフィルタリング処理21について説明するためのフローチャートである。図5は、実施の形態1に係るアラームフィルタリング処理21の具体例を説明するための図である。図4に示されるフローは、第1周期よりも長い第2周期ごとに繰り返し実行される。入出力信号ほどのリアルタイム性が要求されないアラーム信号について、入出力信号の処理周期(第1周期)よりも長い周期(第2周期)で処理を実行することでデータ更新周期を最適化することができる。
【0047】
ステップS200において、アラームフィルタリング処理21は、現カウント値tが第2周期に相当する規定カウント値Tに達しているか否かを判定する。判定条件が成立しない場合、現カウント値tがインクリメントされて再びステップS210の処理が実行される。一方、判定条件が成立する場合、すなわち第2周期が経過した場合は次にステップS220の処理が実行される。
【0048】
ステップS220において、アラームフィルタリング処理21は、アラームバッファメモリ20に蓄積されているブロックデータを取り出し、取り出されたブロックデータをアンパックしてアラーム信号の集合を抽出する。
図5に示す例では、2つのブロックデータ(ブロック番号「PLC/BLK 1」および「PLC/BLK 2」)がアンパックされ、4つのPLC信号(P1_1,ALM_1,P2_1,ALM_2)のうち、アラーム信号(ALM_1,ALM_2)が抽出される。
【0049】
ステップS230において、アラームフィルタリング処理21は、フィルタリング情報に基づいて、抽出されたアラーム信号の集合のうち、前回値から値に変化があったアラーム信号のみを抽出する。フィルタリング情報は、各アラーム信号の前回値を含み、メモリ62に格納されている。アラーム信号の前回値と今回値とが異なる場合にはHMI操作者の操作が必要である。そのため、変化があったアラーム信号をHMIサーバプロセス7へ送る必要がある。一方、アラーム信号の前回値と今回値とが同じである場合にはそのアラーム信号を破棄することができ、以降の処理負荷を削減できる。
図5に示す例では、上述した2つのアラーム信号(ALM_1,ALM_2)のうち、アラーム信号(ALM_1)が前回値から値に変化があった信号である。一方、アラーム信号(ALM_2)は前回値と今回値が同じであるため破棄される。
【0050】
ステップS240において、アラームフィルタリング処理21は、抽出されたアラーム信号を含むアラームパケットを生成する。
図5に示す例では、アラーム信号(ALM_1)を含むアラームパケットが生成される。
【0051】
ステップS250において、送信処理22は、アラームパケットをモニタ75(図10)に表示されているウェブブラウザ30へ送信する。
【0052】
1-5.効果
以上説明したように、バッファリング処理19によれば、アラーム信号を含むブロックデータのみをアラームバッファメモリ20に一時的に蓄積し、アラーム信号を含まないブロックデータを破棄する。ブロックデータ単位で不要なデータが破棄されるため、特に大規模システムにおいて処理負荷を低減する効果が大きい。アラームフィルタリング処理21によれば、入出力信号ほどのリアルタイム性が要求されないアラーム信号について、入出力信号の処理周期(第1周期)よりも長い周期(第2周期)で処理を実行することでデータ更新周期を最適化することができる。さらにアラームフィルタリング処理21によれば、前回値から変化があったアラーム信号のみを抽出できる。したがって、前回値から変化がないアラーム信号を破棄して以降の処理負荷を低減し、ウェブブラウザへ送信するデータ量を削減できる。これらの処理を備えることで、高性能なCPUや大容量のメモリを必要としないHMIシステムを構成できる。
【0053】
また、オンラインデータ収集機4によりすべての信号の履歴データを蓄積でき、HMIクライアント機3のウェブブラウザ30は、履歴データをオンラインデータ収集機4から取得できる。そのため、HMIサーバ機2は、リアルタイム監視に必要なデータのみを処理すれば足りるため、HMIサーバ機の処理負荷を低減できる。
【0054】
実施の形態2.
2-1.実施の形態2の概要
次に、図6図9を参照して本発明の実施の形態2について説明する。
上述した実施の形態1では、アラーム信号を含むブロックデータをアラームバッファメモリ20に一時的に蓄積したあとに、アンパック処理を実行している。この方式の場合、アラームバッファメモリ20にブロックデータ全体が含まれるため、アラーム信号以外の余計な入出力信号も含まれてしまう。アラームバッファメモリ20に使用されるメモリ使用量は低減できることが低コスト化のために望ましい。
【0055】
そこで、本実施形態では、アラームバッファメモリ20に蓄積する前にアンパック処理を行い、アラーム信号のみをアラームバッファメモリ20に蓄積することとした。
【0056】
2-2.実施の形態2に係るHMIサーバ機の機能概要
図6は、実施の形態2に係るHMIサーバ機2が有する機能の概要を例示するブロック図である。図6に示すHMIサーバ機2の構成は、バッファリング処理19がバッファリング処理19aに、アラームフィルタリング処理21がアラームフィルタリング処理21aに置き換えられている点を除き、図2に示す構成と同様である。
【0057】
バッファリング処理19aは、第1周期ごとに受信したブロックデータにアラーム信号の集合が含まれている場合に、ブロックデータに含まれているアラーム信号の集合を抽出し、抽出されたアラーム信号の集合をアラームバッファメモリ20に一時的に蓄積する。第1周期は、例えば数ミリ秒~数百ミリ秒である。
【0058】
アラームフィルタリング処理21aは、第1周期よりも長い第2周期ごとにアラームバッファメモリ20に蓄積されているアラーム信号の集合を取り出す。さらに、アラームフィルタリング処理21aは、取り出されたアラーム信号の集合のうち、前回値から値に変化があったアラーム信号を抽出する。第2周期は、例えば数秒である。
【0059】
2-3.実施の形態2に係るバッファリング処理
まず図7および図9を参照して、図6に示すバッファリング処理19aについて説明する。図7は、実施の形態2に係るバッファリング処理19aについて説明するためのフローチャートである。図9は、実施の形態2に係るバッファリング処理19aの具体例を説明するための図である。図7に示されるフローは、第1周期ごとに繰り返し実行される。
【0060】
ステップS100およびステップS110の処理は図3と同様である。ステップS100において、受信処理16は、PLCから送信されたブロックデータを第1周期ごとに受信する。
図9に示す例では、受信処理16は、1回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 1」)を受信する。受信処理16は、2回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 2」)を受信する。受信処理16は、3回目の第1周期でブロックデータ(ブロック番号「PLC/BLK 3」)を受信する。
【0061】
ステップS110において、バッファリング処理19aは、アラームブロック情報15を参照して、受信したブロックデータにアラーム信号の集合が含まれているか否かを判定する。これによりアラーム信号を含むブロックデータのみが抽出される。受信したブロックデータにアラーム信号の集合が含まれている場合、受信したブロックデータについてステップS320の処理が実行される。一方、受信したブロックデータにアラーム信号の集合が含まれていない場合、受信したブロックデータは破棄され、本フローは終了される。ステップS110の判定条件が成立しない場合は、ブロックデータを破棄することができ、以降の処理負荷を削減できる。
図9に示す例では、アラームブロック情報15には、アラーム信号が含まれるブロックデータのブロック番号として、「PLC/BLK 1」と「PLC/BLK 2」が登録されている。そのため、アラームブロック情報15に登録されているブロック番号「PLC/BLK 1」および「PLC/BLK 2」のブロックデータについては次にステップS320の処理が実行される。一方、アラームブロック情報15に登録されていないブロック番号「PLC/BLK 3」のブロックデータは破棄される。
【0062】
ステップS320において、バッファリング処理19aは、プロックデータをアンパックしてアラーム信号の集合を抽出する。
図9に示す例では、2つのブロックデータ(ブロック番号「PLC/BLK 1」および「PLC/BLK 2」)がアンパックされ、4つのPLC信号(P1_1,ALM_1,P2_1,ALM_2)のうち、アラーム信号(ALM_1,ALM_2)が抽出される。
【0063】
ステップS330において、バッファリング処理19aは、抽出したアラーム信号の集合をアラームバッファメモリ20に一時的に蓄積する。
図9に示す例では、2つのアラーム信号(ALM_1,ALM_2)がアラームバッファメモリ20に一時的に蓄積される。
【0064】
2-4.実施の形態2に係るアラームフィルタリング処理
次に図8および図9を参照して、図6に示すアラームフィルタリング処理21aについて説明する。図8は、実施の形態2に係るアラームフィルタリング処理21aについて説明するためのフローチャートである。図9は、実施の形態2に係るアラームフィルタリング処理21aの具体例を説明するための図である。図8に示されるフローは、第1周期よりも長い第2周期ごとに繰り返し実行される。
【0065】
図8は、ステップS220の処理が省略されている点を除き、図4と同様である。
ステップS200において、アラームフィルタリング処理21aは、現カウント値tが第2周期に相当する規定カウント値Tに達しているか否かを判定する。判定条件が成立しない場合、現カウント値tがインクリメントされて再びステップS210の処理が実行される。一方、判定条件が成立する場合、すなわち第2周期が経過した場合は次にステップS230の処理が実行される。
【0066】
ステップS230において、アラームフィルタリング処理21aは、アラームバッファメモリ20に蓄積されているアラーム信号の集合を取り出す。アラームフィルタリング処理21aは、フィルタリング情報に基づいて、取り出されアラーム信号の集合のうち、前回値から値に変化があったアラーム信号のみを抽出する。フィルタリング情報は、各アラーム信号の前回値を含み、メモリ62に格納されている。アラーム信号の前回値と今回値とが異なる場合にはHMI操作者の操作が必要である。そのため、変化があったアラーム信号をHMIサーバプロセス7へ送る必要がある。一方、アラーム信号の前回値と今回値とが同じである場合にはそのアラーム信号を破棄することができ、以降の処理負荷を削減できる。
図9に示す例では、上述した2つのアラーム信号(ALM_1,ALM_2)のうち、アラーム信号(ALM_1)が前回値から値に変化があった信号である。一方、アラーム信号(ALM_2)は前回値と今回値が同じであるため破棄される。
【0067】
ステップS240において、アラームフィルタリング処理21aは、抽出されたアラーム信号を含むアラームパケットを生成する。
に示す例では、アラーム信号(ALM_1)を含むアラームパケットが生成される

【0068】
ステップS250において、送信処理22は、アラームパケットをモニタ75(図10)に表示されているウェブブラウザ30へ送信する。
【0069】
2-5.効果
以上説明したように、実施の形態2のシステムによれば、実施の形態1と同様に処理負荷を低減することができる。さらに、実施の形態2のシステムによれば、実施の形態1に比してアラームバッファメモリ20に使用されるメモリ使用量を低減できる。
【0070】
3.ハードウェア構成例
図10は、HMIサーバ機2、HMIクライアント機3、オンラインデータ収集機4のハードウェア構成例を示すブロック図である。
【0071】
上述したHMIサーバ機2の各処理は、処理回路により実現される。処理回路は、プロセッサ61と、メモリ62と、ネットワークインタフェース63とが接続して構成されている。プロセッサ61は、メモリ62に記憶された各種プログラムを実行することにより、HMIサーバ機2の各機能を実現する。メモリ62は、主記憶装置および補助記憶装置を含む。
【0072】
上述したHMIクライアント機3の各処理は、処理回路により実現される。処理回路は、プロセッサ71と、メモリ72と、ネットワークインタフェース73と、入力インタフェース74と、少なくとも一つのモニタ75とが接続して構成されている。プロセッサ71は、メモリ72に記憶された各種プログラムを実行することにより、HMIクライアント機3の各機能を実現する。メモリ72は、主記憶装置および補助記憶装置を含む。入力インタフェース74は、キーボード、マウス、タッチパネル等の入力デバイスである。モニタ75は複数台設けられてもよい。
【0073】
上述したオンラインデータ収集機4の各処理は、処理回路により実現される。処理回路は、プロセッサ81と、メモリ82と、ネットワークインタフェース83とが接続して構成されている。プロセッサ81は、メモリ82に記憶された各種プログラムを実行することにより、オンラインデータ収集機4の各機能を実現する。メモリ82は、主記憶装置および補助記憶装置を含む。
【0074】
以上、本発明の実施の形態について説明したが、本発明は、上記の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。上述した実施の形態において各要素の個数、数量、量、範囲等の数に言及した場合、特に明示した場合や原理的に明らかにその数に特定される場合を除いて、その言及した数にこの発明が限定されるものではない。また、上述した実施の形態において説明する構造等は、特に明示した場合や明らかに原理的にそれに特定される場合を除いて、この発明に必ずしも必須のものではない。
【符号の説明】
【0075】
1 プログラマブルロジックコントローラ(PLC)
2 HMIサーバ機
3 HMIクライアント機
4 オンラインデータ収集機
5 コンピュータネットワーク
6 入出力管理プロセス
6a 参照カウント更新スレッド
6b マルチキャストレシーバースレッド
6c アラーム生成スレッド
7 HMIサーバプロセス
8 アラーム管理プロセス
15 アラームブロック情報
16 受信処理
19、19a バッファリング処理
20 アラームバッファメモリ
21、21a アラームフィルタリング処理
22 送信処理
30 ウェブブラウザ
31 スクリーン
32 監視スクリーン
33 履歴スクリーン
61、71、81 プロセッサ
62、72、82 メモリ
63、73、83 ネットワークインタフェース
74 入力インタフェース
75 モニタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10