(57)【要約】【課題】  複数のコントローラで構成された並列型監視制御システムにおいて、制御動作を停止させることなく、夫々のコントローラのファームウェアの更新を可能とする、並列型監視制御システム、及び同システムの並列型コントローラのファームウェア更新方法を提供することを目的とする。【解決手段】  ファームウェア更新モジュール２１は、第１のコントローラに記憶された第１のタスクを、ソフトウェア管理ステーション４から予めダウンロードされたタスク平準化テーブルＴＢで指定された第２のコントローラにコピーし、第１のタスクと、コピーしたタスクを並列実行させ、入出力装置２３の出力差が同じ制御周期内で、所定の許容範囲であることを確認し、第１タスクをスリープさせ、第２タスクを起動し、第２のコントローラによって監視制御を継続し、第１のコントローラのファームウェアＯＳを更新する。【選択図】  図１
2006309345.tif 000002
【特許請求の範囲】
【請求項１】
被制御対象を複数のコントローラで監視制御する並列型監視制御システムであって、
前記並列型監視制御システムは、前記被制御対象を監視制御する複数のコントローラを有する並列型コントローラと、前記並列型コントローラで制御される監視情報をオペレータが監視し、操作する監視制御ステーションと、前記並列型コントローラに予めダウンロードされるアプリケーションプログラムとそのファームウェアとからなるソフトウェア及び前記並列型コントローラの夫々の前記コントローラに記憶させるタスクの分配先を指定したタスク平準化テーブルを記憶するソフトウェア管理ステーションと、前記並列型コントローラ、前記監視制御ステーション、及び前記ソフトウェア管理ステーションを接続するネットワークとから成り、
前記ソフトウェア管理ステーションは、前記アプリケーションプログラムを構成する複数の前記タスクを複数の前記コントローラへ分配する分配先を指定するための第１のタスク平準化テーブルと、前記ファームウェアを交換する場合に、交換対象となる第１のコントローラの記憶手段に記憶されたタスクをこの第１のコントローラ以外の第２のコントローラに分配する分配先のコントローラを指定する第２のタスク平準化テーブルとから成るタスク平準化テーブルを生成するタスク平準化テーブル生成手段と、前記タスク平準化テーブル及び前記ソフトウェアを記憶する記憶手段とを有し、
前記並列型コントローラは、
前記ソフトウェア管理ステーションに記憶された前記ソフトウェア及び前記タスク平準化テーブルをダウンロードして記憶する記憶手段と、前記アプリケーションプログラムによって前記被制御対象を監視制御する複数の前記コントローラと、前記コントローラで演算された前記被制御対象との入出力信号をインタフェースする入出力装置と、前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するファームウェア更新手段と、前記記憶手段、複数の前記コントローラ、前記入出力装置、及び前記ファームウェア更新手段を接続するシステムバスとを有し、
前記ファームウェア更新手段は、予め設定される前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するようにしたことを特徴とする並列型監視制御システム。
【請求項２】
前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のタスクと、コピーした第２のタスクとを並列実行させ、
前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、
前記前記第１タスクをスリープさせるとともに、コピーした前記第２タスクを起動し、前記第２のコントローラによって監視制御を継続するとともに、前記第１のコントローラの前記ファームウェアを更新するようにしたことを特徴とする請求項１に記載の並列型監視制御システム。
【請求項３】
前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクとコピーした前記第２のコントローラの前記第２タスクとを並列実行させ、
前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、
前記第１のコントローラの前記第１のタスクをスリープさせるとともに、前記第２のコントローラの前記第２タスクを起動し、制御を継続するとともに、更新対象となる前記第２のコントローラの前記ファームウェアを更新し、
更新された夫々の前記コントローラに記憶されたタスクの配置を前記コントローラと対応付けして記憶したタスク配置状態テーブルとして記憶し、
順次、前記第２のコントローラの中から前記ファームウェアを更新対象とする前記第１のコントローラとその他の前記第２のコントローラとを選択し、前記第１のコントローラに記憶されたタスクをその他の前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクと、コピーした前記第２のコントローラの前記第２のタスクを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、
前記第のタスクをスリープ状態にするとともに、前記第２のタスクを起動し、
更新された夫々の前記コントローラに記憶された前記タスクの配置を、前記タスク配置状態テーブルに記憶し、
全ての前記コントローラについてファームウェアの更新を実行し、
全て更新が終了すると、前記第１のタスク平準化テーブルに基づいて、全ての前記タスクを夫々の前記コントローラの分配指定先に記憶し、
前記並列型コントローラの前記ファームウェアを更新するとともに、監視制御を継続して実行するようにしたことを特徴とする請求項1に記載の並列型監視制御システム。
【請求項４】
前記第１のコントローラは１台とし、前記第２のコントローラは前記第１のコントローラを除く他の１台以上の全てとしたことを特徴とする請求項１に記載の並列型監視制御システム。
【請求項５】
前記タスク平準化テーブルを作成するための前記タスク平準化テーブル生成手段の平準化アルゴリズムは、前記コントローラが、タスクの記憶容量と前記コントローラに記憶可能な記憶容量との比で表されるエリア占有率を一方の軸とし、前記タスクを実行するに要する時間とその実行周期との比で表される負荷率を他方の軸とした空間をタスク情報空間として、夫々の前記コントローラに前記タスクを分配し、実行したときの前記タスク情報空間での位置をプロットし、分配された前記コントローラの全台数のプロット点を連ねた多角形の面積が最小に、また、直線の長さが最小になるように前記タスクを分配するようにしたことを特徴とする請求項１に記載の並列型監視制御システム。
【請求項６】
前記タスク平準化テーブル生成手段は、制御実行中に前記ファームウェア更新手段を介して前記コントローラの前記タスク情報を収集し、収集した前記タスク情報に基づいて前記第１のタスク平準化テーブル及び前記第２のタスク平準化テーブルを更新するようにしたことを特徴とする請求項１に記載の並列型監視制御システム。
【請求項７】
被制御対象を複数のコントローラで監視制御する並列型監視制御システムの並列型コントローラのファームウェア更新方法であって、
前記並列型監視制御システムは、前記被制御対象を監視制御する複数のコントローラを有する並列型コントローラと、前記並列型コントローラで制御される監視情報をオペレータが監視し、操作する監視制御ステーションと、前記並列型コントローラに予めダウンロードされるアプリケーションプログラムとそのファームウェアとからなるソフトウェア及び前記並列型コントローラの夫々の前記コントローラに記憶させるタスクの分配先を指定したタスク平準化テーブルを記憶するソフトウェア管理ステーションと、前記並列型コントローラ、前記監視制御ステーション、及び前記ソフトウェア管理ステーションを接続するネットワークとから成り、
前記ソフトウェア管理ステーションは、前記アプリケーションプログラムを構成する複数の前記タスクを複数の前記コントローラへ分配する分配先を指定するための第１のタスク平準化テーブルと、前記ファームウェアを交換する場合に、交換対象となる第１のコントローラの記憶手段に記憶されたタスクをこの第１のコントローラ以外の第２のコントローラに分配する分配先のコントローラを指定する第２のタスク平準化テーブルとから成るタスク平準化テーブルを生成するタスク平準化テーブル生成手段と、前記タスク平準化テーブル及び前記ソフトウェアを記憶する記憶手段とを有し、
前記並列型コントローラは、
前記ソフトウェア管理ステーションに記憶された前記ソフトウェア及び前記タスク平準化テーブルをダウンロードして記憶する記憶手段と、前記アプリケーションプログラムによって前記被制御対象を監視制御する複数の前記コントローラと、前記コントローラで演算された前記被制御対象との入出力信号をインタフェースする入出力装置と、前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するファームウェア更新手段と、前記記憶手段、複数の前記コントローラ、前記入出力装置、及び前記ファームウェア更新手段を接続するシステムバスとを有し、
前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクとコピーした前記第２のコントローラの前記第２タスクとを並列実行させ、
前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、
前記第１のコントローラの前記第１のタスクをスリープさせるとともに、前記第２のコントローラの前記第２タスクを起動し、制御を継続するとともに、更新対象となる前記第２のコントローラの前記ファームウェアを更新し、
更新された夫々の前記コントローラに記憶されたタスクの配置を前記コントローラと対応付けして記憶したタスク配置状態テーブルとして記憶し、
順次、前記第２のコントローラの中から前記ファームウェアを更新対象とする前記第１のコントローラとその他の前記第２のコントローラとを選択し、前記第１のコントローラに記憶されたタスクをその他の前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクと、コピーした前記第２のコントローラの前記第２のタスクを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、
前記第のタスクをスリープ状態にするとともに、前記第２のタスクを起動し、
更新された夫々の前記コントローラに記憶された前記タスクの配置を、前記タスク配置状態テーブルに記憶し、
全ての前記コントローラについてファームウェアの更新を実行し、
全て更新が終了すると、前記第１のタスク平準化テーブルに基づいて、全ての前記タスクを夫々の前記コントローラの分配指定先に記憶し、
前記並列型コントローラの前記ファームウェアを更新するとともに、監視制御を継続して実行するようにしたことを特徴とする並列型監視制御システムの並列型コントローラのファームウェア更新方法。
【請求項８】
前記ファームウェア更新手段は、全ての前記コントローラのファームウェアが更新された後、前記コントローラからの全て前記タスクの前記タスク情報を測定して前記ソフトウェア管理ステーションに送信し、
前記ソフトウェア管理ステーションは、送信された前記タスク情報に基づいて、前記コントロー毎の前記タスク情報を求め、予め設定された所定の負荷状態を超える場合、前記第１のタスク平準化テーブル、前記第２のタスク平準化テーブルでの前記タスクの分配状態を前記平準化アルゴリズムに基づいて再配置し、前記第１のタスク平準化テーブル、前記第２のタスク平準化テーブルを更新するようにしたことを特徴とする請求項７に記載の並列型監視制御システムの並列型コントローラのファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、石油化学などのプロセス制御、発電プラントなどのプラント制御等において、複数のコントローラ（制御装置）を並列使用してプロセスやプラントの監視制御を行う並列型監視制御システム、同システムの並列型コントローラのファームウェア更新方法に関する。
【背景技術】
【０００２】
従来の各種のプラント設備の監視制御システムは、複数のコントローラを分散して並列に制御を行う並列型監視制御システム（分散制御システムともいう）が主体となり、各種のプロセス制御において一般的に使用されている。
【０００３】
この並列型監視制御システムは、被制御対象の総合的な集中制御を目的とするもので、システムの規模は大規模なものから小規模なものまで多様に存在する。
【０００４】
近年、大規模プラント用のコントローラとして複数のコントローラをネットワークで接続して、１台のコントローラで分担する被制御対象機器を最小限度に少なくして、危険分散を図る並列型コントローラによる並列型監視制御システムが知られている（例えば、特許文献１参照）。
【０００５】
この特許文献１によれば、コントローラ毎に分担しているタスクの負荷率を予め求めておき、複数のコントローラが多重ダウンした場合、待機用のコントローラを設けずに、正常に動作しているコントローラに自律的に負荷を分散しバックアップすることを可能とする、信頼性を高めた技術が開示されている。
【０００６】
こうした監視制御システムには、故障や保守によるシステムの停止が許されない高い信頼性を要求される発電プラントなどでは、常用系と待機糸の２系統を同一プログラムで運転して監視制御する二重化制御システムを採用している。
【０００７】
この二重化制御システムでは、通常、常用系と待機糸の２系統のコントローラでは、二重化されたコントローラ間でタイミングの同期を図りながら入出力装置からのデータ、及びアプリケーションプログラムによる演算を繰り返し実行して、プロセスの制御を行っている。
【０００８】
このような二重化制御システムでは、コントローラのアプリケーションプログラムを変更する場合、最初に一方のコントローラの制御を停止状態とした後、停止したコントローラのアプリケーションプログラムを変更後、二重化制御運転に復帰させていた。
【０００９】
このような操作は多くの時間を伴うだけでなく、ご操作を誘発しやすい恐れがあるため、コントローラに接続され、変更するアプリケーションプログラムを適宜分割して順次保守を実行する保守ツールと２つのアプリケーションプログラムメモリとを備えて、分割されたアプリケーションプログラムを順次取り込み、他方のアプリケーションメモリに格納して、制御機能を停止することなくアプリケーションプログラムの変更を可能としている技術が開示されている（例えば、特許文献２参照。）。
【特許文献１】特許第３２４４９８２号明細書
【特許文献２】特開平７−３３４２０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、このような監視制御システムのソフトウェアの構成は、ラダー図や制御フロー図のようにユーザが作成するアプリケーションプログラムと、アプリケーションプログラムを実行させる環境や診断機能等を含むコントローラの動作を保障するためのファームウェアとがある。
【００１１】
従来の監視制御システムにおいては、通常、機能の変更や機能の追加を行う場合、アプリケーションプログラムの変更あるいは追加を行うことによって実現している。
【００１２】
このようなソフトウェアの変更、追加作業は、プロセスの制御動作を停止することなく実行できることが、監視制御システムの稼働率や信頼性、また、システムの保守性を向上する上で重要である。
【００１３】
しかしながら、特許文献１には、コントローラの監視制御動作中コントローラの負荷の分散を行うことは出来ても、アプリケーションプログラムやファームウェアを、コントローラの監視制御動作を停止することなく変更することが出来ない問題がある。
【００１４】
また、特許文献２には、コントローラの監視制御動作中にアプリケーションプログラムを更新する機能は開示されているが、ファームウェアを更新する技術は開示されていない。
【００１５】
また、二重化制御システムにおいては、待機系のファームウェアを停止してファームウェアを更新することになるので、このファームウェアの変更作業中は、システムが二重化されない1系統での運転となる問題がある。
【００１６】
また、通常の監視制御システムの対象プラントは連続稼動で、システム停止を行うのは、予め定められた年に1度程度のメンテナンス時の機会しかなく、ファームウェア更新作業は、これらの機会に合わせて行うか、あるいはプラントの操業を停止させて行わなければならなかった。
【００１７】
本発明は、上記問題点を解決するためになされたもので、並列型コントローラで構成された監視制御システムにおいて、制御動作を停止させることなく、必要とされるときに、夫々のコントローラのファームウェアの更新を可能とする、並列型監視制御システム、及び同システムの並列型コントローラのファームウェア更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明に係る請求項１の並列型監視制御システムは、被制御対象を複数のコントローラで監視制御する並列型監視制御システムであって、前記並列型監視制御システムは、前記被制御対象を監視制御する複数のコントローラを有する並列型コントローラと、前記並列型コントローラで制御される監視情報をオペレータが監視し、操作する監視制御ステーションと、前記並列型コントローラに予めダウンロードされるアプリケーションプログラムとそのファームウェアとからなるソフトウェア及び前記並列型コントローラの夫々の前記コントローラに記憶させるタスクの分配先を指定したタスク平準化テーブルを記憶するソフトウェア管理ステーションと、前記並列型コントローラ、前記監視制御ステーション、及び前記ソフトウェア管理ステーションを接続するネットワークとから成り、前記ソフトウェア管理ステーションは、前記アプリケーションプログラムを構成する複数の前記タスクを複数の前記コントローラへ分配する分配先を指定するための第１のタスク平準化テーブルと、前記ファームウェアを交換する場合に、交換対象となる第１のコントローラの記憶手段に記憶されたタスクをこの第１のコントローラ以外の第２のコントローラに分配する分配先のコントローラを指定する第２のタスク平準化テーブルとから成るタスク平準化テーブルを生成するタスク平準化テーブル生成手段と、前記タスク平準化テーブル及び前記ソフトウェアを記憶する記憶手段とを有し、前記並列型コントローラは、前記ソフトウェア管理ステーションに記憶された前記ソフトウェア及び前記タスク平準化テーブルをダウンロードして記憶する記憶手段と、前記アプリケーションプログラムによって前記被制御対象を監視制御する複数の前記コントローラと、前記コントローラで演算された前記被制御対象との入出力信号をインタフェースする入出力装置と、前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するファームウェア更新手段と、前記記憶手段、複数の前記コントローラ、前記入出力装置、及び前記ファームウェア更新手段を接続するシステムバスとを有し、前記ファームウェア更新手段は、予め設定される前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するようにしたことを特徴とする。
【００１９】
上記目的を達成するために、本発明の請求項１における請求項２に係る並列型監視制御システムは、前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のタスクと、コピーした第２のタスクとを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、前記前記第１タスクをスリープさせるとともに、コピーした前記第２タスクを起動し、前記第２のコントローラによって監視制御を継続するとともに、前記第１のコントローラの前記ファームウェアを更新するようにしたことを特徴とする。
【００２０】
上記目的を達成するために、本発明の請求項１における請求項３に係る並列型監視制御システムは、前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクとコピーした前記第２のコントローラの前記第２タスクとを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、前記第１のコントローラの前記第１のタスクをスリープさせるとともに、前記第２のコントローラの前記第２タスクを起動し、制御を継続するとともに、更新対象となる前記第２のコントローラの前記ファームウェアを更新し、更新された夫々の前記コントローラに記憶されたタスクの配置を前記コントローラと対応付けして記憶したタスク配置状態テーブルとして記憶し、順次、前記第２のコントローラの中から前記ファームウェアを更新対象とする前記第１のコントローラとその他の前記第２のコントローラとを選択し、前記第１のコントローラに記憶されたタスクをその他の前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクと、コピーした前記第２のコントローラの前記第２のタスクを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、前記第のタスクをスリープ状態にするとともに、前記第２のタスクを起動し、更新された夫々の前記コントローラに記憶された前記タスクの配置を、前記タスク配置状態テーブルに記憶し、全ての前記コントローラについてファームウェアの更新を実行し、全て更新が終了すると、前記第１のタスク平準化テーブルに基づいて、全ての前記タスクを夫々の前記コントローラの分配指定先に記憶し、前記並列型コントローラの前記ファームウェアを更新するとともに、監視制御を継続して実行するようにしたことを特徴とする。
【００２１】
上記目的を達成するために、本発明の請求項１における請求項５に係る並列型監視制御システムは、前記タスク平準化テーブルを作成するための前記タスク平準化テーブル生成手段の平準化アルゴリズムは、前記コントローラが、タスクの記憶容量と前記コントローラに記憶可能な記憶容量との比で表されるエリア占有率を一方の軸とし、前記タスクを実行するに要する時間とその実行周期との比で表される負荷率を他方の軸とした空間をタスク情報空間として、夫々の前記コントローラに前記タスクを分配し、実行したときの前記タスク情報空間での位置をプロットし、分配された前記コントローラの全台数のプロット点を連ねた多角形の面積が最小に、また、直線の長さが最小になるように前記タスクを分配するようにしたことを特徴とする。
【００２２】
上記目的を達成するために、本発明の請求項７に係る被制御対象を複数のコントローラで監視制御する並列型監視制御システムの並列型コントローラのファームウェア更新方法であって、被制御対象を複数のコントローラで監視制御する並列型監視制御システムの並列型コントローラのファームウェア更新方法であって、前記並列型監視制御システムは、前記被制御対象を監視制御する複数のコントローラを有する並列型コントローラと、前記並列型コントローラで制御される監視情報をオペレータが監視し、操作する監視制御ステーションと、前記並列型コントローラに予めダウンロードされるアプリケーションプログラムとそのファームウェアとからなるソフトウェア及び前記並列型コントローラの夫々の前記コントローラに記憶させるタスクの分配先を指定したタスク平準化テーブルを記憶するソフトウェア管理ステーションと、前記並列型コントローラ、前記監視制御ステーション、及び前記ソフトウェア管理ステーションを接続するネットワークとから成り、前記ソフトウェア管理ステーションは、前記アプリケーションプログラムを構成する複数の前記タスクを複数の前記コントローラへ分配する分配先を指定するための第１のタスク平準化テーブルと、前記ファームウェアを交換する場合に、交換対象となる第１のコントローラの記憶手段に記憶されたタスクをこの第１のコントローラ以外の第２のコントローラに分配する分配先のコントローラを指定する第２のタスク平準化テーブルとから成るタスク平準化テーブルを生成するタスク平準化テーブル生成手段と、前記タスク平準化テーブル及び前記ソフトウェアを記憶する記憶手段とを有し、前記並列型コントローラは、前記ソフトウェア管理ステーションに記憶された前記ソフトウェア及び前記タスク平準化テーブルをダウンロードして記憶する記憶手段と、前記アプリケーションプログラムによって前記被制御対象を監視制御する複数の前記コントローラと、前記コントローラで演算された前記被制御対象との入出力信号をインタフェースする入出力装置と、前記タスク平準化テーブルに基づいて、前記コントローラの前記ファームウェアを更新するファームウェア更新手段と、前記記憶手段、複数の前記コントローラ、前記入出力装置、及び前記ファームウェア更新手段を接続するシステムバスとを有し、前記ファームウェア更新手段は、前記ソフトウェア管理ステーションから前記並列型コントローラに対して前記ファームウェアの更新要求があった場合に、前記第１のコントローラに記憶された第１のタスクを、前記ソフトウェア管理ステーションから予めダウンロードされた前記第２のタスク配置テーブルで指定された前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクとコピーした前記第２のコントローラの前記第２タスクとを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、前記第１のコントローラの前記第１のタスクをスリープさせるとともに、前記第２のコントローラの前記第２タスクを起動し、制御を継続するとともに、更新対象となる前記第２のコントローラの前記ファームウェアを更新し、更新された夫々の前記コントローラに記憶されたタスクの配置を前記コントローラと対応付けして記憶したタスク配置状態テーブルとして記憶し、順次、前記第２のコントローラの中から前記ファームウェアを更新対象とする前記第１のコントローラとその他の前記第２のコントローラとを選択し、前記第１のコントローラに記憶されたタスクをその他の前記第２のコントローラにコピーし、前記第１のコントローラの前記第１のタスクと、コピーした前記第２のコントローラの前記第２のタスクを並列実行させ、前記入出力装置の出力の差が、予め設定される所定の許容値の範囲内であることを確認し、前記第のタスクをスリープ状態にするとともに、前記第２のタスクを起動し、更新された夫々の前記コントローラに記憶された前記タスクの配置を、前記タスク配置状態テーブルに記憶し、全ての前記コントローラについてファームウェアの更新を実行し、全て更新が終了すると、前記第１のタスク平準化テーブルに基づいて、全ての前記タスクを夫々の前記コントローラの分配指定先に記憶し、前記並列型コントローラの前記ファームウェアを更新するとともに、監視制御を継続して実行するようにしたことを特徴とする。
【００２３】
上記目的を達成するために、本発明の請求項７における請求項８に係る被制御対象を複数のコントローラで監視制御する並列型監視制御システムの並列型コントローラのファームウェア更新方法であって、前記ファームウェア更新手段は、全ての前記コントローラのファームウェアが更新された後、前記コントローラからの全て前記タスクの前記タスク情報を測定して前記ソフトウェア管理ステーションに送信し、前記ソフトウェア管理ステーションは、送信された前記タスク情報に基づいて、前記コントロー毎の前記タスク情報を求め、予め設定された所定の負荷状態を超える場合、前記第１のタスク平準化テーブル、前記第２のタスク平準化テーブルでの前記タスクの分配状態を前記平準化アルゴリズムに基づいて再配置し、前記第１のタスク平準化テーブル、前記第２のタスク平準化テーブルを更新するようにしたことを特徴とする。
【発明の効果】
【００２４】
本発明によれば、ネットワークに接続された並列型コントローラのソフトウェア管理ステーションに、並列型コントローラが実行するソフトウェアを記憶させ、さらに、並列型コントローラの夫々のコントローラが実行するタスクの分担先を指定する第１のタスク平準化テーブルと、ファームウェアを更新するコントローラを除く他のコントローラでのタスクの分担先を指定する第２のタスク平準化テーブルを備え、これらのテーブルを予め並列型コントローラに記憶させて置き、ファームウェアの更新が必要になったときに、並列型コントローラに対し、更新要求をし、第２のタスク平準化テーブルに基づいて、最初に更新するコントローラを指定して、指定されたコントローラ以外の他のコントローラでタスクの実行を分担し、ファームウェア更新対象のコントローラのタスクの実行を停止させてファームウェアを更新するようにしたので、監視制御を停止することなくコントローラのファームウェアを更新することが出来る。
【００２５】
また、コントローラの負荷を平準化するためのタスク平準化テーブルの生成は、夫々のコントローラが実行するタスクについての占有率、負荷率をタスク情報として求めるようにしたので、ファームウェアを更新する場合、特定のコントローラに負荷が集中することなくファームウェアの更新が可能となり、安定した監視制御システムの運転が継続される。
【００２６】
また、タスク平準化テーブルの生成は、監視制御を実行中にタスク情報を収集して再作成することもできるので、監視制御を停止することなくファームウェアを保守することができる。
【００２７】
したがって、並列型コントローラのソフトウェアの更新が生じた場合に、監視制御動作を停止することなく、必要とされる時に、夫々のコントローラのファームウェアの更新を可能とする、並列型監視制御システム、及び同システムの並列型コントローラのファームウェア更新方法を提供することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して、本発明の実施例を説明する。
【実施例１】
【００２９】
本発明による実施例１に係る並列型監視制御システムについて、図１乃至図１３を参照して説明する。図１は、並列型監視制御システムの構成を示すシステムブロック図である。
【００３０】
並列型監視制御システムは、プラントを操作するバルブなどの操作端１ａや、プラントの状態を検出するセンサなどの検出端１ｂからなる被制御対象１を制御する複数のコントローラを有する並列型コントローラ２、並列型コントローラ２で制御された被制御対象１の制御状態をプラントのオペレータが監視操作する監視制御ステーション３、並列型コントローラ２が実行するソフトウェアを管理するソフトウェア管理ステーション４、及びこれらを接続するネットワーク５から構成される。
【００３１】
並列型コントローラ２は、監視制御ステーション３及びソフトウェア管理ステーション４との間の信号を伝送し、ソフトウェア管理ステーション４からソフトウェアＳＷをダウンロードし、Ｎ台の並列型コントローラ２が実行するアプリケーションプログラムＴＫをタスク平準化テーブルＴＢで指定される夫々のコントローラ２２の分担先に送信するファームウェア更新モジュール２１、このファームウェア更新モジュール２１から夫々のコントローラ２２に送信されるソフトウェアＳＷを記憶し、被制御対象１を協調して演算制御する複数のコントローラ２２１乃至コントローラ２２Ｎからなる。
【００３２】
以下、コントローラ２２やタスクの個々の番号を示すことが必要な場合は、コントローラ２２１、タスクＴＫ１のように、サフィックス番号を付して記すことにする。
【００３３】
さらに、被制御対象１との間でこれらのコントローラ２２から送信される入出力信号を授受する入出力装置２３、及びこれらの並列型コントローラ２を構成する各部を相互に接続するシステムバス２４とから構成される。
【００３４】
また、監視制御ステーション３は、並列型監視制御システムのオペレータが並列型コントローラ２から送信され、予め設定される監視制御情報を図示しないモニタ装置に表示し、被制御対象１を監視、操作する装置である。
【００３５】
また、ソフトウェア管理ステーション４は、並列型コントローラ２で使用するソフトウェアＳＷの記憶手段、並列型コントローラ２からの要求でネットワーク５を介してソフトウェアＳＷをダウンロード可能とする通信手段、更に、詳細を後述する平準化アルゴリズムに基づいてタスク平準化テーブルＴＢを生成するタスク平準化テーブル生成手段とから構成される。
【００３６】
このソフトウェア管理ステーション４は、記憶手段、演算手段を備えた汎用のパソコンで容易実現されるものなのでその詳細構成を省略する。
【００３７】
また、このソフトウェアＳＷは、並列型コントローラ２の夫々のコントローラ２２に搭載するオペレーティングシステムを含むファームウェアＯＳ、多数のタスクから構成されるアプリケーションプログラムＴＫ、及び詳細を後述するコントローラ２２に記憶するタスクを指定するタスク平準化テーブルＴＢとからなる。
【００３８】
次に、各部の詳細構成について説明する。先ず、並列型コントローラ２の詳細構成について、図２を参照して説明する。
【００３９】
コントローラ２２１乃至コントローラ２２Ｎは、全て同じ構成で、各種の演算制御を実行するマイクロコントローラを有するＣＰＵ２２ａと、ＣＰＵ２２ａのハードウェアを制御するソフトウェアＳＷを記憶するフラッシュメモリ等の不揮発性メモリ２２ｂと、ＣＰＵ２２ａから直接アクセス可能な主メモリで、被制御対象１を制御するための各種の制御データを制御周期単位で一時記憶するＲＡＭ２２ｃ、及びこれらコントローラを構成する各部を接続する内部バス２２ｅとを有する。
【００４０】
さらに、この内部バス２２ｅと並列型コントローラ２の各部とを接続するシステムバス２４と、これらのバスを介して伝送される信号を制御するシステムバス制御回路部２２ｆとから成る。
【００４１】
さらに詳細には、システムバス制御回路部２２ｆは、システムバス制御回路２２ｆ１と共有メモリ２２ｆ２とを備え、共有メモリ２２ｆ２は、システムバス２４に接続された他のコントローラ２２から書き込み、読み出しが可能で、システムバス制御回路２２ｆ１によってこの制御を実行するように構成されている。
【００４２】
次に、これらのコントローラ２２の構成と一部を異にするファームウェア更新モジュール２１と入出力装置２３の詳細構成について説明する。ファームウェア更新モジュール２１及び入出力装置２３の各部がコントローラ２２の各部と同じものは同一の符号で示し、その説明を省略する。
【００４３】
ファームウェア更新モジュール２１の構成がコントローラ２２の構成と異なる点は、ファームウェア更新モジュール２１の内部バス２２ｅとネットワーク５とを接続するネットワーク制御回路２１ｄを備え、並列型コントローラ２で使用するソフトウェアＳＷをソフトウェア管理ステーション４からダウンロードし、夫々にコントローラ２２にアプリケーションプログラムＴＫを分配するようにしていることにある。
【００４４】
このソフトウェアＳＷは、ファームウェア更新モジュール２１の不揮発性メモリ２２ｂに記憶される。
【００４５】
尚、ファームウェア更新モジュール２１が実行するアプリケーションプログラムＴＫには、詳細を後述するコントローラ２２のファームウェアＯＳを更新するためのアプリケーションプログラムＴＫ、及び、タスク平準化テーブルＴＢが含まれる。
【００４６】
次に、入出力装置２３の構成がコントローラ２２の構成と異なる点は、内部バス２２ｅに接続され被制御対象１と通信する伝送制御回路２３ｄを備え、この伝送制御回路２３ｄがシステムバス制御回路部２２ｆの共有メモリ２２ｆ２に接続され、伝送制御回路２３ｄが共有メモリ２２ｆ２に書き込まれた出力データを読出し被制御対象１に送信し、また、被制御対象１より受信した入力データを共有メモリ２２ｆ２に書き込むことで被制御対象１との間の入出力データを授受するようにしていることにある。
【００４７】
次に、このように構成された並列型コントローラ２のソフトウェアＳＷの構成と設定について、図３乃至図５を参照して説明する。
【００４８】
図３は、ソフトウェアＳＷの構成を示す図で、ソフトウェアＳＷは、この並列型監視制御システムの監視制御機能を達成するための複数のタスクＴＫ１〜ＭからなるアプリケーションプログラムＴＫと、このアプリケーションプログラムＴＫを実行するための、実行環境や、各種の診断機能とコントローラ２２のハードウェアを制御するオペレーティングシステムとからなるファームウェアＯＳとで構成される。
【００４９】
次に、ソフトウェア管理ステーション４から並列型コントローラ２へのソフトウェアの設定方法について、図４を参照してその概要を説明する。
【００５０】
図４（ａ）は、この監視制御システムを構築するときに、並列型コントローラ２２に予め設定される初期のアプリケーションプログラムＴＫの設定手順を示す。
【００５１】
多数のタスクからなるアプリケーションプログラムＴＫは、エンジニアリング段階でその全てが生成され（ｓ１）、ソフトウェア管理ステーション４にダウンロードされる（ｓ２）。
【００５２】
そして、夫々のコントローラ２２が、極力均一な負荷状態で運転されるようにタスクの分配先を指定するタスク平準化テーブルＴＢを、詳細を後述する平準化アルゴリズムに基づいて作成する（ｓ３）。
【００５３】
作成されたタスク平準化テーブルＴＢは、並列型コントローラ２のファームウェア更新モジュール２１にダウンロード（ｓ４）されるとともに、アプリケーションプログラムＴＫもダウンロード（ｓ５）される。
【００５４】
ファームウェア更新モジュール２１にダウンロードされたアプリケーションプログラムＴＫは、同時に記憶されたタスク平準化テーブルＴＢに基づいて（ｓ６）、ファームウェア更新モジュール２１から夫々のコントローラ２２に分配、記憶される（ｓ７）。
【００５５】
このように初期インストールされたソフトウェアＳＷは、その後、改造や改良が発生し、更新を要求されることが発生する。図４（ｂ）は、システム構築時の初期にインストールされたファームウェアＯＳの変更を行うときの、更新手順を示す。
【００５６】
先ず、ファームウェアＯＳを生成し（ｓ１１）、ソフトウェア管理ステーション４にダウンロードする（ｓ１２）。次に、ダウンロードされたファームウェアをファームウェア更新モジュール２１の不揮発性メモリ２２ｂに書き込む（ｓ１３）。
【００５７】
一方、ファームウェアＯＳの更新要求をソフトウェア管理ステーションからファームウェア更新モジュール２１に送信し（ｓ１４）、この要求を受けたファームウェア更新モジュール２１は、詳細を後述するファームウェア更新処理手順に従って、夫々のコントローラ２２のファームウェアＯＳの制御を停止することなくファームウェアＯＳの更新を実行する。
【００５８】
次に、図４に示した初期のタスク分配処理（ｓ６）と、このタスクの分配先を指定するタスク平準化テーブルＴＢの例を図５乃至図７で説明する。
【００５９】
ソフトウェア管理ステーション４からファームウェア更新モジュール２１の不揮発性メモリ２２ｂに記憶されたタスクＴＫ１〜Ｍは、図５に示すように、予め設定されたタスク平準化テーブルＴＢに基づいて、夫々のコントローラ２２に分配されたタスクグループとして、夫々コントローラ２２1〜Ｎの不揮発性メモリ２２ｂに記憶される。
【００６０】
次に、ソフトウェア管理ステーション４からファームウェア更新モジュール２１の不揮発性メモリ２２ｂに記憶されたタスクの分配先を指定するタスク平準化テーブルＴＢについて、図６を参照して説明する。
【００６１】
タスク平準化テーブルＴＢには、Ｎ台でタスクを分担する場合の割当先を指定したＮタスク平準化テーブルと、Ｎ−１台のコントローラ２２１〜Ｎで、ファームウェアＯＳを更新するコントローラ２２Ｎ台目のタスクを分担する場合の割当て先を指定したＮ−１タスク平準化テーブルとがある。
【００６２】
例えば、図６に示すＮタスク平準化テーブルＴＢは、２１個のタスクＴＫ１〜２１を４台のコントローラ２２１〜４での分担先を示し、タスクＴＫ１〜５はグループ１、タスクＴＫ６〜１１はグループ２、タスクＴＫ１２〜１６はグループ３、またタスクＴＫ１７〜２１はグループ４に分割され、夫々のグループ（番号）は平準化されたときのどのタスクがどのコントローラ２２に配置されるかを示すテーブルである。
【００６３】
また、Ｎ−１平準化タスクテーブルは、コントローラ２２４のグループ４のタスクＴＫ１７〜２１を残り３台のコントローラ２２１〜３で分担する場合、コントローラ２２４が分担していたタスクＴＫ１８〜２１を、コントローラ２２１には、タスクＴＫ１７、１８を、コントローラ２２２には、タスクＴＫ１９を、また、コントローラ２２３には、タスクＴＫ２０、２１を分担するように指定していることを示すテーブルである。
【００６４】
図６に示すＮタスク平準化テーブル及びＮ−１タスク平準化テーブルは、並列型監視制御システムの運転を開始する初期に、ソフトウェア管理ステーション４から予め設定されるもので、このテーブルの分担先の状態は変化しないものである。
【００６５】
これ以外に、図７に示すようなファームウェア更新モジュール２１で管理するタスク配置状態テーブルがある。このタスク配置状態テーブルは、タスクをＮ台のコントローラ２２でＮ個のグループに分割した時に、どのコントローラのグループに属するかを示すもので、ファームウェアＯＳを更新する時に、動的に変化するタスクの配置状態とそのタスクの実行状態を示すものである。
【００６６】
このタスク配置状態テーブルは、ファームウェア更新モジュール２１がソフトウェア管理ステーション４から、詳細を後述するファームウェア更新要求を受信した時、ファームウェアＯＳを更新するコントローラ２２を順次指定し、指定されたコントローラ２２のタスクの分担を更新して行く場合に作られるもので、図４のファームウェア更新処理ｓ１５のステップで生成される。
【００６７】
図７においては、タスクＴＫ１〜５は、コントローラ２２１に、タスクＴＫ６〜１１は、コントローラ２２２に、また、タスクＴＫ１２〜１６は、コントローラ２２３に夫々配置され、実行可能な状態であることを示す。
【００６８】
また、コントローラ２２４に配置されたグロープ４のタスクＴＫ１７〜２１は、タスクＴＫ１７、１８が、実行可能な状態で、且つ、コントローラ２２１にコピー済みでスリープ状態、タスクＴＫ１９は、コントローラ２２２にコピー中で、且つ、実行可能な状態、また、タスクＴＫ２１、２１は実行可能な状態であることを示している。
【００６９】
次に、このように構成された並列型監視制御システムの並列型コントローラ２によって入出力装置２３を介して実行される被制御対象１との入出力処理動作について図８を参照して説明する。
【００７０】
入出力装置２３の共有メモリ２２ｆ２には、被制御対象１の入力端１ａからの入力データ、出力端１ｂへの出力データが予めマッピングされ、そのアドレスと入出力データの対応付けがされている。
【００７１】
コントローラ２２１〜Ｎは、これらの共有メモリ２２ｅに書き込まれた入力データを読出し、予め記憶されたアプリケーションプログラムＴＫに従って制御演算を実行し、演算結果を所定の制御周期で入出力装置２３の共有メモリ２２ｆ２に書き込む。
【００７２】
そして、書き込まれた出力データは、伝送制御回路２３ｄで読み取り、出力端１ｂに伝送される。
【００７３】
次に、このように構成された並列型監視制御システムにおいて、各コントローラ２２の負荷を平準化するためタスク平準化テーブルＴＢを生成するための平準化アルゴリズムについて、その平準化の動作原理を図９乃至図１１を参照して説明する。
【００７４】
コントローラ２２の負荷の平準化を評価する評価パラメータは、図９に示すように、コントローラ２２があるタスクを実行したときのエリア占有率と負荷率のベクトル空間での座標位置で評価する。
【００７５】
タスクのエリア占有率ＴＲｋは、コントローラ２２に記憶可能なプログラムの記憶容量ＣＣに対するあるタスクのプログラム記憶容量ＴＣｋとの比率
ＴＲｋ＝ＴＣｋ／ＣＣ
で定義する。
【００７６】
一方、負荷率ＬＲｋは、タスクの実行制御周期ＴＳｋと、タスクの実行時間ＴＴｋとの比率
ＬＲｋ＝ＴＴｋ／ＴＳｋ
で定義する。
【００７７】
このようなエリア占有率ＴＲｋと負荷率ＬＲｋからなるタスク情報を、予め全てのタスクについて測定しておき、エリア占有率ＴＲｋと負荷率ＬＲｋからなる座標空間(以下、タスク情報空間と称す)において、座標位置をプロットして負荷状態を判定する。
【００７８】
次に、このタスク情報空間での負荷の平準化をするためのタスクの分配動作について説明する。例えば、Ｎ台のコントローラが存在する場合、Ｎ台にタスクを平準化した状態とＮ−１台にタスクを平準化した状態とが存在する。
【００７９】
実際には、Ｎ台の中の１台のタスクをＮ−１台に分配すれば良いので、Ｎ−１台に平準化されている状態から、いくつかのタスクを抽出し他の１台に割り当てることによりＮ台に平準化されている状態にすることができる。
【００８０】
以下では、並列型コントローラ２がＮ台（Ｎ≧４）のコントローラ２２で構成され、アプリケーションプログラムＴＫとしてＭ個（Ｍ≧Ｎ）のタスクがある場合について説明をする。
【００８１】
また、下の説明においては、コントローラの番号としてｊ（０≦ｊ≦Ｎ）を使用する。ｊ＝Ｎとなるコントローラは平準化のためのタスク分配元となるコントローラの番号とする。また、タスクの番号としてｋ（０≦ｋ≦Ｍ）を使用する。
【００８２】
先ず、与えられたタスクを「ＳＱＲＴ（ＴＲｋ２＋ＬＲｋ２）」（タスク情報空間座標面上では（０、０）からの距離）の降順にソートし、この順にタスクを選択してＮ−１台のコントローラ２２のいずれかに対してタスクＴＫ１〜Ｍを割当てる。
【００８３】
次に、あるタスクをどのコントローラ２２に分担させるかを選択する場合の処理は、次のようにする。例えば、タスクＴＫ１〜Ｎ−１までは、コントローラ２２１〜Ｎ−１までに順にＮ−１個のタスクＴＫ１〜Ｎ−１を割り当てる。
【００８４】
次に、タスクＴＫＮ以降は、その時点までにｐ個のタスクが割当てられていたとすると、コントローラ２２ｊにおいてそれまでのエリア占有率ＴＲｋの総和をＴＴＲｊ（ｐ）、負荷率ＣＲｋの総和をＴＬＲｊ（ｐ）とする。
【００８５】
そして、図１０（ａ）、（ｂ）に示すように、タスク情報空間座表面上では、（ＴＴＲｊ（ｐ）、ＴＬＲｊ（ｐ））となる点ＰＣｊ（ｐ）をプロットしそれらを結ぶとＮ−１角形以下の４角形または３角形の多角形ができる。特殊な場合には線分となる場合もある。
【００８６】
次に、図１１は、このようにして作られるタスク情報に、ｐ+１個目のタスクＴＫｐ＋１を４台のいずれかのコントローラ２２に割当てた場合、この多角形の形状が変化は、ＰＣｊ（ｐ＋１）に示すようになるが、それにより形成された４角形または３角形の面積が最小となるコントローラ２２に割当てる。
【００８７】
図１１の場合、図１１（ｃ）に示すようにコントローラ２２３に割り当てた場合が最も小さくなるので、タスクＴＫｐ＋１はコントローラ２２３に割り当てられる。なお、線分となった場合には、その長さが最小となるコントローラに割当てる。
【００８８】
このような操作を、タスクＴＫＭまで繰り返す。これによりＭ個のタスクをＮ−１台のコントローラ２２に平準化して分配することができる。
【００８９】
このようにして選択されたタスクＴＫ１〜Ｍの各コントローラ２２への割り当てが、Ｎ−１タスク平準化テーブルとして決定される。
【００９０】
ただし、割り当てられたコントローラ２２のタスクの集合は、コントローラ２２間で移動するため、タスク平準化テーブルＴＢ上はグループとして処理される。
【００９１】
以上のような処理は、ソフトウェア管理ステーション４で全タスクについてタスク情報を予め収集し、収集されたタスク情報から平準化アルゴリズムに基づいて、Ｎ−１タスク平準化テーブルが作成される。
【００９２】
次に、Ｎ台目のコントローラ２２Ｎに対する割り当ては、ｑ個のタスクが割当てられていた時点で、それまでのエリア占有率ＴＲｋの総和ＴＴＲｊ（ｑ）、負荷率ＬＲｋの総和ＴＬＲｊ（ｑ）がともに｛（Ｎ−１）／Ｎ｝を越えないような所定の範囲で、所定の範囲を超える場合は、ｑ+１個目以降のタスクＴＫｑ＋１〜ＭをコントローラＮに割当てる。
【００９３】
そして、Ｎ−１タスク平準化テーブルから、全てのコントローラ２２のタスク情報が偏らないように、所定の範囲内の負荷状態としてコントローラ２２Ｎに分配されたものを、Ｎタスク平準化テーブルとして作成する。
【００９４】
次に、このように構成された並列型監視制御システムにおいて、監視制御を実行中にファームウェアＯＳを更新する場合の並列型コントローラ２の処理動作について図１２乃至図１３を参照して説明する。
【００９５】
尚、この処理動作は、図４のステップ(ｓ１５)での処理に該当する。
【００９６】
例えば、並列型コントローラ２が、４台のコントローラ２２１〜４で、２１個のタスクＴＫ１〜２１を予め指定された割り当で協調して制御を実行している状態を想定する。
【００９７】
この状態からファームウェ更新モジュール２１によって、４台のコントローラ２２１〜４のファームウェアＯＳを更新処理した場合のコントローラ２２１〜４に割り当てられるタスクＴＫ１〜２１の遷移状態を図示したものである。
【００９８】
尚、図１２、図１３では、コントローラ２２１〜４を、サフィックス部のみを記して、コントローラ１乃至コントローラ４と図示している。
【００９９】
また、コントローラ２２１〜４に記憶されるタスクＴＫ１〜Ｍの各々は、長方形で図示したコントローラ２２１〜４上の上下方向に長い矩形で示し、矢印はそのタスクの移動先を示している。
【０１００】
このファームウェア更新処理の動作の概要は、ファームウェア更新モジュール２１が、最初に４台目のコントローラ２２４のファームウェアＯＳを更新するため、このコントローラ２２４が実行していたタスクを他の３台のコントローラ２２１〜３で分担する状態にし、コントローラ２２４では実行するアプリケーションプログラムＴＫがない状態にする。
【０１０１】
そして、この状態で、コントローラ２２４のファームウェアＯＳを更新する。以下、同様の方法で他の全てのコントローラ２２のファームウェアＯＳを順次更新し、全ての更新が完了すると最後に当初のタスク分配の状態に戻す。
【０１０２】
以下、この動作の詳細について、説明する。
【０１０３】
先ず、（１）の状態の前に、ソフトウェア管理ステーション４からファームウェア更新モジュール２１に対して、新しいファームウェアＯＳをダウンロードし、ファームウェア更新モジュール２１の不揮発性メモリ２２ｂに記憶する（ＳＴ１）。
【０１０４】
この状態では、Ｎタスク平準化テーブルの状態に各コントローラ２２のタスクが予め配置されている。
【０１０５】
次に、この状態からＮ−１タスク平準化テーブルの状態になるようにするため、コントローラ２２４のタスクを予め設定されたＮ−１タスク平準化テーブルに基づいて、コントローラ２２１〜３に分配コピーする（ＳＴ２）。
【０１０６】
この（ＳＴ２）の状態では、分配された矢印先のタスクはコピー元のコントローラ２２４においては実行状態で、コピー先のコントローラ２２１〜３においてはスリープ状態である。
【０１０７】
この（ＳＴ２）の状態から、コピー元のコントローラ２２４のタスクをスリープさせ、コピー先のコントローラ２２１〜３のタスクを起動することで、該当するタスクを実行するコントローラ２２を切替える。
【０１０８】
なお、入出力データの継続性を保つため、切り替え前の制御周期０入出力データを実行中のタスクからスリープ中のタスクへ転送する（ＳＴ３）。
【０１０９】
この（ＳＴ３）の状態では、起動しているタスクの配置がＮ−１タスク平準化テーブルの状態になっており、コントローラ２２１〜３によって全てのタスクが実行されている。
【０１１０】
ここで、コントローラ２２４のタスクを削除し、コントローラ２２４のファームウェアＯＳを更新する。新しいファームウェアＯＳは、ファームウェア更新モジュール２１に記憶されていたものをファームウェア更新モジュール２１がコントローラ２２４の不揮発性メモリ２２ｂに転送する。
【０１１１】
これにより（ＳＴ４）の状態になる。この状態から、次にファームウェアＯＳを更新するコントローラ２２３からファームウェアＯＳを更新済のコントローラ２２４へタスクをすべてコピーする（ＳＴ５）。
【０１１２】
この（ＳＴ５）の状態から、コピー元のコントローラ２２３のタスクをスリープさせ、コピー先のコントローラ２２４のタスクを起動することでタスクを実行するコントローラ２２を切替える。
【０１１３】
なお、制御実行中の入出力データの継続性を保つため、切り替え前の入出力データを実行中のタスクからスリープ中のタスクへ転送する。この時、ファームウェア更新モジュール２１で管理するタスク配置状態テーブルは、グループ３とグループ４のコントローラ２２を入れ替える（ＳＴ６）。
【０１１４】
この（ＳＴ６）の状態では、起動しているタスクの配置がＮ−１タスク平準化テーブルの状態になっており、コントローラ２２１、コントローラ２２２、コントローラ２２４によってすべてのタスクが実行されている。
【０１１５】
ここで、コントローラ２２３のタスクを削除し、コントローラ２２３のファームウェアＯＳを更新する。ファームウェアＯＳは、ソフトウェア管理ステーション４からダウンロードし、ファームウェア更新モジュール２１に予め記憶された新しいファームウェアＯＳを転送する。
【０１１６】
コントローラ２２２、コントローラ２２１に対しても順次（ＳＴ５）、（ＳＴ６）、（ＳＴ７）の内容の処理を繰り返し行う（ＳＴ７、ＳＴ８）。
【０１１７】
この（ＳＴ８）状態からＮタスク平準化テーブルの状態になるようにするため、コントローラ２２２〜４に分配されていたタスクをコントローラ２２１にコピーする（ＳＴ９）。
【０１１８】
この（ＳＴ９）の状態では、分配されたタスクはコピー元のコントローラ２２２〜４では、実行状態で、コピー先のコントローラ２２１でスリープ状態である。
【０１１９】
つぎに、（ＳＴ９）の状態から、コピー元のタスクをスリープさせ、コピー先のタスクを起動することでタスＴＫを実行するコントローラ２２を切替える。
【０１２０】
なお、同様に、監視制御中の入出力データの継続性を保つため、切り替え前の制御周期の入出力データを実行中のタスクからスリープ中のタスクへ転送する（ＳＴ１０）。
【０１２１】
この（ＳＴ１０）の状態からスリープさせた不要なタスクを削除する。この状態では、起動しているタスクの配置がＮタスク平準化テーブルの状態になっており、コントローラ２２１〜４によってすべてのタスクが実行され状態となる。
【０１２２】
このように、従来の監視制御システムでは、このアプリケーションプログラムＴＫがファームウェアＯＳの実行環境の下で動作しているので、ファームウェアＯＳを更新する場合は、アプリケーションプログラムＴＫの実行を停止する必要があったが、本実施例に拠れば、並列型監視制御システムにおいてはソフトウェア管理ステーション４からファームウェアの更新が必要になった時に、監視制御の実行を停止することなく、新しいファームウェアＯＳに更新することが可能となる。
【０１２３】
したがって、年間に１回乃至２回程度の定期修理期間でしか実行できなかったソフトウェアの保守が、操業に影響を与えることなく必要なときに可能となりシステムの保守性が向上する。
【実施例２】
【０１２４】
以下に、本発明の実施例２に係る並列型監視制御システムについて、図１４を参照して説明する。
【０１２５】
図１４は、並列型監視制御システムの入出力装置２３と被制御対象１との入出力データをタスクＴＫｉで実行中のコントローラ２２１からコントローラ２２Ｎに切り替える場合の入出力データの流れをシステム構成ブロック図上に矢印で示したものである。
【０１２６】
この実施例２の各部について、実施例１の並列型監視制御システムと同一部分は同一符号で示し、その説明を省略する。
【０１２７】
この実施例２が実施例１と異なる点は、実施例１においては、コントローラ２２１が実行しているタスクＴＫｉを切り替える場合、実行中のタスクＴＫｉをスリープさせるとともに、コピーした先のコントローラ２２ＮのタスクＴＫｉを起動させるようにしていたが、本実施例２では、２台のコントローラ２２１とコントローラ２２Ｎとで、タスクＴＫｉを並列実行させ、入出力装置２３の共有メモリ２２ｆ２上の出力データを伝送制御回路２３ｄが選択して切り替える方法とした点にある。
【０１２８】
そして、ソフトウェア管理ステーション４から、入出力装置２対して破線矢印で示すように２台のコントローラ２２の出力データ差を判定する許容幅を予め設定するようにしておき、選択する出力データの差が、許容幅内となった時に、共有メモリ２２ｆ２上の出力データのアドレスを切り替えるように構成しておく。
【０１２９】
したがって、従来の方法では非同期の制御周期で動作しているコントローラ２２１とコントローラ２２Ｎとは、実行するタスクを切り替えたときにコントローラ２２１からコントローラ２２Ｎへ転送された出力データは、切り替える前と切り替えた後で同じ制御状態となることが保証されていないが、本実施例２の方法では、切り替える前後で出力データの差が所定の許容幅ないであることを確認して切り替えているので、制御性能に変化を与えない、いわゆるバンプレス制御が可能となる。
【実施例３】
【０１３０】
以下に、本発明の実施例３に係る並列型監視制御システムについて、図１５を参照して説明する。
【０１３１】
図１５は、ファームウェア更新時の手順を示すフローチャートで、実施例１の図４(ｂ)に対応するものである。この実施例２の各部について、実施例１の並列型監視制御システムと同一部分は同一符号で示し、その説明を省略する。
【０１３２】
この実施例２の並列型監視制御システムのファームウェア更新方法が実施例１と異なる点は、実施例１においては、タスク平準化テーブルＴＢは、コントローラ２２にインストールする前に、予めソフトウェア管理ステーション４で生成されたタスク平準化テーブルＴＢを設定して、ファームウェアを更新するようにしていたが、本実施例３では、ファームウェア更新要求（ｓ１４）があると、ファームウェア更新モジュール２１を介して、監視制御実行中の夫々のコントローラ２２に分配された夫々のタスク情報の測定を要求し（ｓ２２）、測定したタスク情報をソフトウェア管理ステーション４にアップロードし（ｓ２６）、タスク平準化テーブルＴＢをソフトウェア管理ステーション４で再生成して（ｓ２７）し、作成されたタスク平準化テーブルＴＢをダウンロードし（ｓ２８）、ファームウェア更新モジュール(ｓ２９)に書き込み、再度ファームウェアの更新要求をして（ｓ３０）、ファームウェア更新処理（ｓ３１）を実行するようにしたことにある。
【０１３３】
本実施例に拠れば、一度インストールされたタスク平準化テーブルＴＢのタスク情報を監視制御実行中に各コントローラ２２から実測し、その結果に基づいてタスク平準化テーブルを再度作成するようにしたので、ファームウェア更新時の負荷状態を検証し、負荷が特定のコントローラ２２に偏ったりすることを修正することができる。
【０１３４】
本発明は、上述した実施例に何ら限定されるものではなく、上述した夫々のコントローラ２２のファームウェアＯＳの変更時の平準化は、更新対象以外の全てのコントローラ２２に分配せず、夫々のコントローラの負荷が分担可能なコントローラ台数で平準化しても良く、本発明の主旨を逸脱しない範囲で種々変形して実施することも可能である。
【０１３５】
また、本並列型監視制御システムによれば、ファームウェアの更新だけでなく、タスクの更新も可能であることはいうまでもない。
【図面の簡単な説明】
【０１３６】
【図１】本発明の実施例１に係る並列型監視制御システムの構成図。
【図２】本発明の並列型コントローラの構成図。
【図３】本発明の並列型コントローラのソフトウェア構成図。
【図４】本発明の実施例１に係るファームウェア更新動作のフロー図。
【図５】本発明のアプリケーションプログラムのダウンロード動作説明図。
【図６】本発明の実施例１に係る第１のタスク平準化テーブルの例。
【図７】本発明の実施例１に係る第２のタスク平準化テーブルの例。
【図８】本発明の入出力処理の動作を説明するフロー図。
【図９】本発明のタスク情報の説明図。
【図１０】本発明のタスク平準化アルゴリズムの動作原理説明図。
【図１１】本発明のタスク平準化アルゴリズムの動作原理説明図。
【図１２】本発明のファームウェアの更新動作の説明図。
【図１３】本発明のファームウェアの更新動作の説明図。
【図１４】本発明の実施例２に係るバンプレス制御動作の説明図。
【図１５】本発明の実施例３に係るファームウェア更新動作のフロー図。
【符号の説明】
【０１３７】
１  被制御対象
１ａ  出力端
１ｂ  入力端
２  並列型コントローラ
３  監視制御ステーション
４  ソフトウェア管理ステーション
５  ネットワーク
２１  ファームウェア更新モジュール
２１ｄ  ネットワーク制御回路
２２１〜２２Ｎ  コントローラ
２２ａ  ＣＰＵ
２２ｂ  不揮発性メモリ
２２ｃ  ＲＡＭ
２２ｅ  内部バス
２２ｆ  システムバス制御回路部
２２ｆ１  システムバス制御回路
２２ｆ２  共有メモリ
２３  入出力装置
２３ｄ  伝送制御回路
２４  システムバス
ＴＢ  タスク平準化テーブル
ＴＫ  アプリケーションプログラム
ＯＳ  ファームウェア
ＴＫ１〜Ｍ  タスク
【図１】
2006309345.tif 000003
【図２】
2006309345.tif 000004
【図３】
2006309345.tif 000005
【図４】
2006309345.tif 000006
【図５】
2006309345.tif 000007
【図６】
2006309345.tif 000008
【図７】
2006309345.tif 000009
【図８】
2006309345.tif 000010
【図９】
2006309345.tif 000011
【図１０】
2006309345.tif 000012
【図１１】
2006309345.tif 000013
【図１２】
2006309345.tif 000014
【図１３】
2006309345.tif 000015
【図１４】
2006309345.tif 000016
【図１５】
2006309345.tif 000017