説明

分散型監視制御システム

【課題】ネットワークを介して相互接続した複数ノードにより構成された各ノードにおいて、同じ処理を並列実行することにより、システム全体の監視制御を行う分散型の監視制御において、各ノードの処理が同期していないことによる、処理遅延が発生していた。
【解決手段】ネットワーク上で時刻同期しているOS時計と、OS時計から生成され、内部処理のタイミング生成を行うシステム時計の2種類の内部時計を用いてタイミング同期を行う。

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

【特許請求の範囲】
【請求項1】
ネットワーク接続された複数台の監視制御装置が同期制御を行う分散型の監視制御システムにおいて、ネットワークの同期を行う手段と、前記同期を行う手段により同期したOS時計と、前記OS時計よりソフトウェア処理を行うタイミングを生成するシステム時計を備えたことを特徴とする分散型監視制御システム。
【請求項2】
前記ネットワークの同期を行う手段は、各ノードのリアルタイムコントローラから、基準時刻を発生するOS時計を有し、前記OS時計は、時刻同期実行タイミングになれば、他ノードに時刻データを送信しSNTPにより時刻同期を行い、その値を前記OS時計へ設定する機能と、前記OS時計と、前記システム時計の差が1秒以上ある場合は、システム時計の年日時分秒をOS時計に一致させ、前記OS時計と前記システム時計の差が1ms以上ある場合は、ms単位のズレを保持するとともに、1サイクル処理ごとに設定値ずつズレを補正し、OS時計の時刻に同期する機能を備えたことを特徴とする分散型監視制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−33374(P2013−33374A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2011−168968(P2011−168968)
【出願日】平成23年8月2日(2011.8.2)
【出願人】(000003942)日新電機株式会社 (328)