(57)【要約】【課題】ネットワークを介して相互接続した複数ノードにより構成された各ノードにおいて、同じ処理を並列実行することにより、システム全体の監視制御を行う分散型の監視制御において、各ノードの処理が同期していないことによる、処理遅延が発生していた。【解決手段】ネットワーク上で時刻同期しているＯＳ時計と、ＯＳ時計から生成され、内部処理のタイミング生成を行うシステム時計の２種類の内部時計を用いてタイミング同期を行う。【選択図】図1
2013033374.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続された複数台の監視制御装置が同期制御を行う分散型の監視制御システムにおいて、ネットワークの同期を行う手段と、前記同期を行う手段により同期したＯＳ時計と、前記ＯＳ時計よりソフトウェア処理を行うタイミングを生成するシステム時計を備えたことを特徴とする分散型監視制御システム。
【請求項２】
前記ネットワークの同期を行う手段は、各ノードのリアルタイムコントローラから、基準時刻を発生するＯＳ時計を有し、前記ＯＳ時計は、時刻同期実行タイミングになれば、他ノードに時刻データを送信しＳＮＴＰにより時刻同期を行い、その値を前記ＯＳ時計へ設定する機能と、前記ＯＳ時計と、前記システム時計の差が１秒以上ある場合は、システム時計の年日時分秒をＯＳ時計に一致させ、前記ＯＳ時計と前記システム時計の差が１ｍｓ以上ある場合は、ｍｓ単位のズレを保持するとともに、1サイクル処理ごとに設定値ずつズレを補正し、ＯＳ時計の時刻に同期する機能を備えたことを特徴とする分散型監視制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、浄水場や、下水処理場のプラント等に設置された設備機器の監視および制御を行う監視制御システムに係り、詳しくは、ネットワークを介して相互接続された複数の独立したノードにより構成され、各ノードにおいて同一処理を並列実行させる分散型の監視制御システムに関するものである。
【背景技術】
【０００２】
従来は、点検や対象設備の停止等で、分散型監視制御システムから、離脱していたノードが再度システムに参入する際に、他のノードと同期させて稼動させる為に、稼働中のノードの処理を一時停止させてからデータのコピー処理を行なっていた。そして、コピー処理の完了後に、再参入のノードを含めた全ノードの処理を一斉に再起動させることでノード間のデータ内容、プログラムの実行状態、入出力状態等の一致を図っていた。
【０００３】
しかしながら、前記のような処理を行うためには、一旦システム全体を停止させなければならない。その為、システム停止が許容されないプラント等においては、適用することはできなかった。また、稼動中のノードを停止させずに、再参入するノードを稼動中ノードと再同期を実行しようとすると、たとえあるタイミングで稼動中ノードと再参入ノードとの間でデータが一致していたとしても、同期していない異なるタイミングでのデータの読み書きが発生し、ノード間でデータ内容に違いが生じることになる。また、データ内容が異なれば、このデータを参照して行う処理は、処理が同じであっても結果が異なる可能性があり、ノード間で出力に不一致が生じるという課題があった。
【０００４】
前記課題を解決する手段として、特開２００４−１４０４２４では、ネットワークを介して相互に接続された複数のノードを備え、複数のノードの各ノードにおいて同じ処理を独立に並列実行させる。各ノードは、システム内の稼働中のノードは無停止かつ処理を継続させた状態で、停止状態から再起動したノードを稼働中ノードとの間で処理タイミングを合わせてシステムへ再度組込む再同期稼働化処理を行う駆動管理部を備え、更に稼働中ノードと組込みノードとの間で、データ内容を含むノードの状態を一致させるデータ一致化処理を行うデータ同期処理部を備えている。
【０００５】
その上で、システム内の稼動中のノードは無停止かつ処理を継続させた状態のまま、ユーザプログラムの処理を実行開始する度に、組込みノードに対して処理開始の通知を行う。また、組込みノードはデータ同期処理部によって稼働中ノードと当該組込みノードとの間でのデータ一致化処理を行い、これが完了していた場合に、当該組込みノードが稼働中ノードから受信した処理開始通知を参照して、そのタイミングに同期したユーザプログラムの処理を開始する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４０４２４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
分散型監視制御システムでは、各ノードが個別に処理を行うためノード間で処理のタイミングにズレが発生する。このズレによりデータの取得タイミングや内部ソフトウェアの処理タイミングが異なり、このズレが処理の遅延となってシステムとしての反応速度を低下させる原因となっている。これを回避する一例として、前記、特開２００９−１４０４２４で提案されている方法等がある。
【０００８】
しかしながら、前記方法では、処理が複雑であり、稼動中ノードと設定されたノードは内部処理のタイミング毎に処理開始通知を発行しなければならないので、処理の負荷を増大させる原因となる。また、ユーザプログラムの処理毎に稼動中ノードから組み込みノードへ通知することでタイミングの同期を図っており、このマスターノードとなるノードが故障した場合には、システム全体に影響を及ばせる原因となる。
【０００９】
本発明の目的は、処理を複雑にすることなく、且つ、マスターノードを設けずにシステム全体が同期できる分散型監視制御システムを提供することである。
【課題を解決するための手段】
【００１０】
ネットワーク接続された複数台の監視制御装置が同期制御を行う分散型の監視制御システムにおいて、ネットワークの同期を行う手段と、前記同期を行う手段を用いて、同期した各ノードの時刻同期を行う内部時計（以下、ＯＳ時計と呼ぶ）と、前記ＯＳ時計よりソフトウェア処理を行うタイミングを生成する内部時計（以下、システム時計と呼ぶ）を備えている。
【００１１】
前記ネットワークの同期を行う手段は、各ノードのリアルタイムコントローラから、基準時刻を発生するＯＳ時計を有し、前記ＯＳ時計は、時刻同期実行タイミングになれば、他ノードに時刻データを送信しＳＮＴＰの仕組みにより時刻同期を行い、その値を前記ＯＳ時計へ設定する機能と、前記ＯＳ時計と、前記システム時計の差が1秒以上ある時は、システム時計の年日時分秒をＯＳ時計に一致させ、前記ＯＳ時計と前記システム時計の差が１ｍｓ以上ある場合は、ｍｓ単位のズレを保持するとともに、処理ごとに少しずつズレを補正する機能を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明により、システム全体での同期が可能となりネットワーク負荷の増大を抑えつつ、各ノード間での、処理タイミングのズレによるシステムとしての反応速度の低下を最小限に抑えることができる。また、時刻同期した内部時計からソフトウェア処理タイミングを生成する為、時刻同期のタイミングでソフトウェア処理周期が大きく変更されて、ソフトウェア処理に支障が起こるこという問題が想定されるが、２種類の内部時計を使用してソフトウェア処理のタイミングを少しずつ調整する機能を有しているので、ソフトウェア処理が間に合い、結果としてデータの欠損や重複の発生を防ぐことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明におけるソフトウェア処理フローチャート
【図２】図２は、本発明におけるハード構成のブロック図
【図３】図３は、本発明におけるソフトウェア処理のタイミングチャート図
【図４】図４は、本発明における1秒ずつ補正する仕組みがない場合の説明図
【図５】図５は、本発明における1秒ずつ補正する仕組みがある場合の説明図
【発明を実施するための形態】
【００１４】
図１及び図２を用いて本発明の実施例について説明を行う。図２は、本発明の概略ブロック図である。内部のRTC（リアルタイムクロック）から、ＯＳ時計に時刻を設定する（S1）。時刻同期実行タイミングかどうか判定をおこない（S2）、時刻同期タイミングであれば、Ethernet（登録商標）上のSNMPのポーリング機能５を用いて、他ノードの情報を取得し、時刻同期を行う。時刻同期した時刻で、ＯＳ時計を更新する（S3）。本実施例では、時刻同期タイミングを５分周期に設定している。
【００１５】
具体的には、時刻同期を行う装置は、装置起動タイミングから５分毎にＳＮＴＰの仕組みにより、時刻マスターノードへの時刻データ請求を行い、返信されてきた時刻データへの同期処理を実行している。時刻マスターノードの決定は、時刻マスターテーブルに設定された、各ノードの優先順位に従い、順次時刻マスター確認を実施し、時刻マスターノードになっているノードが分った時点で、そのノードに対して時刻データ請求を行う。例えば、時刻マスターテーブルの優先順位がノード１＞ノード２＞ノード３の場合。ノード１が、１時１１分１１秒１１、ノード２が１時１１分１１秒１３、ノード３が、１時１１分１１秒１２であった場合、ノード１が故障なくかつ全てのノードと接続されていれば、ノード１が時刻マスターになるのでノード２および、ノード３は、１時１１分１１秒１１でＯＳ時計を更新することになる。（S3）。
【００１６】
各ノードは、ＯＳ時計とシステム時計の差が１秒以上あるかを比較し（S4）、１秒以上あれば、システム時計の年月日時分秒をＯＳ時計に一致させる（S5）。次に、ＯＳ時計とシステム時計の差が１ミリ秒以上あるか比較する（S6）。1ミリ秒以上ある場合は、ミリ秒単位のズレを保持する（S7）。各ノードは、ミリ秒単位のズレのうち、１回のソフトウェア処理タイミングごとに、1ミリ秒だけズレを補正する（S8）。スケジューラは、システム時計のｍｓ単位に同期してタスクを起動する（S9）。タスクの処理が終了したら、前記S2〜S9の処理を繰り返し実行する。S7とS8で、１msずつ補正することを繰り返し、ms単位でＯＳ時計とシステム時計を一致させることでシステム上の全てのノードがms単位で処理タイミングが一致することを実現する。
【００１７】
時刻同期周期は、システムに要求されるタイミング一致の精度と各ノードの時計精度により時刻同期の周期を決定すれば良い。例えば、本実施例では、ハードウェアの時刻精度と、ソフトウェアの処理周期＝１０ｍｓ単位であることなどを考慮にいれ、水処理施設の動力制御システムの時刻同期周期を、5分と設定している。
【００１８】
次に図３を用いて、ＳＮＭＰを用いた同期処理について説明する。ノードＡに、状変Ａが発生すると、状変Ａを検知して、状変Ａデータを監視データへ保存する。次のシーケンス処理時に共有データ（自）に状変Ａを保存し、さらに通信処理を介して、ノードＢへ送信する。同様にノードＢで、状変ＢのデータもノードＢの共有データ（自）に保存するとともにノードＡへ送信する。そして、次のシーケンス処理時に共有データＡとＢを比較し、ズレを補正する。次ぎのシーケンス処理サイクルで、演算結果を制御データに設定して、負荷Ａ及び負荷Ｂの制御を行う。例えば、前記分散型監視制御システムを適用している水処理施設の動力制御システムであれば、最小ソフトウェア処理単位１０ｍｓ、通信およびシーケンス処理周期７０ｍｓの場合であれば、前記の処理を約２００ｍｓ以内で実現することができる。
【００１９】
次に本発明の実施例の１ｍｓずつズレの補正の必要性とその仕組みについて図４および図５を用いて説明する。１ｍｓずつズレを補正する仕組みがなかった場合は、一度に時刻ズレ分を補正してしまうことになる。この場合、ソフトウェア処理タイミングによっては、一つのソフトウェア処理、例えばデータ共有処理中に、別のデータ演算処理指令が有った場合は、前記データ演算処理は、１サイクルの間実行できずに、次の処理サイクルで実行することになってしまう。処理に影響を与えないように１ｍｓずつズレを補正する仕組みを組み込んでいる。
【００２０】
１ｍｓずつズレを補正する仕組みについて、システム時計時刻が遅れている場合と、進んでいる場合について、図５を用いて説明する。ＯＳ時計時刻が、システム時計時刻＋３ｍｓであった場合、即ち、システム時計の方が３ｍｓ遅れている場合。システム時計は、通常、1サイクルのソフトウェア処理を１０ｍｓで処理を行う所を、1サイクル９ｍｓで処理を行う。このように、１ｍｓずつ、1サイクルのソフトウェア処理を短くして3回繰り返すことで計３ｍｓのズレを補正し、ＯＳ時計時刻に同期することができる。ＯＳ時計時刻が、システム時計時刻−４ｍｓであった場合。即ち、システム時計の方が４ｍｓ進んでいる場合は、システム時計は、通常1サイクルのソフトウェア処理を１０ｍｓでおこなっていた所を、1サイクルのソフトウェア処理を１１ｍｓで行う。即ち、１ｍｓずつ、ソフトウェア処理を長くして4回繰り返すことで、計４ｍｓのズレを補正し、ＯＳ時計時刻に同期することができる。本実施例では、１ｍｓずつズレを補正したが、もちろん１ｍｓに限定されるものではなく、１ｍｓ以下で適宜設定すれば良い。
【産業上の利用可能性】
【００２１】
この発明は、たとえば、ネットワークを介して相互接続した複数したノードにより構成され、そのノードにおいて、同じ処理を並列に行う分散型監視制御システムに適応できる。
【符号の説明】
【００２２】
１    システム時間調整
２    ＲＴＣ（リアル・タイム・カウンタ）
３    ＯＳ時計
４    システム時間調整
５    通信機能（ＳＮＴＰ機能）  
６    スケジューラ
７    共有データ
８    各種タスク
９    データ処理
１０  Ｉ／Ｏ処理
１１  通信機能（データ）
２０  ＨＵＢ
１００  ノード１
２００  ノード２
３００  ノード３
【図１】
2013033374.tif 000003
【図２】
2013033374.tif 000004
【図３】
2013033374.tif 000005
【図４】
2013033374.tif 000006
【図５】
2013033374.tif 000007