(57)【特許請求の範囲】
【請求項１】
一方が稼働系となり他方が待機系となり等値化通信手段を介して通信を行う２つの制御装置を備えた制御システムであって、
前記２つの制御装置の各々は、
予め定められた周期でアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込むアプリケーション実行手段と、
等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶するデータ管理手段と、
前記メモリに記憶されているデータのうち、更新ありを示す識別子が前記データ管理手段に記憶されている記憶領域のデータを読み出して他方の制御装置へ送信する送信処理を自身が稼働系である場合に前記アプリケーションプログラムの実行周期毎に実行する送信手段と、
他方の制御装置から受信したデータで当該データに対応するものとして自身のメモリに記憶されているデータを更新する受信処理を自身が待機系である場合に実行する受信手段と、を有し、
前記アプリケーション実行手段は、アプリケーションプログラムの実行周期毎に予め定められた時間長の期間に亙ってアプリケーションプログラムを実行し、当該期間の満了時点の前記データ管理手段の格納内容に応じて当該期間を延長する処理を実行し、
前記送信手段は、アプリケーションプログラムの実行周期において、前記アプリケーション実行手段によるアプリケーションプログラムの実行終了後に前記送信処理を実行する
ことを特徴とする制御システム。
【請求項２】
一方が稼働系となり他方が待機系となり等値化通信手段を介して通信を行う２つの制御装置を備えた制御システムであって、
前記２つの制御装置の各々は、
予め定められた周期でアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込むアプリケーション実行手段と、
等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶するデータ管理手段と、
前記メモリに記憶されているデータと当該データに対応する前記識別子とを対にして他方の制御装置へ送信する送信処理を自身が稼働系である場合に前記アプリケーションプログラムの実行周期毎に実行する送信手段と、
他方の制御装置から受信したデータのうち、更新ありを示す識別子と対になっているデータで当該データに対応するものとして自身のメモリに記憶されているデータを更新する受信処理を自身が待機系である場合に実行する受信手段と、を有し、
前記アプリケーション実行手段は、アプリケーションプログラムの実行周期毎に予め定められた時間長の期間に亙ってアプリケーションプログラムを実行し、当該期間の満了時点の前記データ管理手段の格納内容に応じて当該期間を延長する処理を実行し、
前記送信手段は、アプリケーションプログラムの実行周期において、前記アプリケーション実行手段によるアプリケーションプログラムの実行終了後に前記送信処理を実行する
ことを特徴とする制御システム。
【請求項３】
前記アプリケーション実行手段により実行される複数のアプリケーションプログラムであって、各々優先順位が定められた複数のアプリケーションプログラムを有し、
前記アプリケーション実行手段は、前記予め定められた時間長の期間および延長後の期間において実行するアプリケーションプログラムを前記優先順位にしたがって選択する
ことを特徴とする請求項１または請求項２に記載の制御システム。
【請求項４】
一方が稼働系となり他方が待機系となり等値化通信手段を介して通信を行う２つの制御装置よりなる制御装置対を形成する制御装置であって、
予め定められた周期でアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込む制御部と、
前記メモリと前記制御部との間のデータ授受を仲介するメモリインタフェース回路と、を含み、
前記メモリインタフェース回路は、
等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶するテーブルと、
前記制御部からのデータ書き込み指示に応じて前記メモリへのデータの書き込みを行うとともに前記テーブルの格納内容の更新を行う一方、前記制御部から読み出しを指示されたデータを前記メモリから読み出し、当該データに対応する識別子とともに前記制御部へ返信するアドレスデコード回路と、を有し、
前記制御部は、
自身が稼働系である場合には、アプリケーションプログラムの実行周期毎に予め定められた時間長の期間に亙ってアプリケーションプログラムを実行し、当該期間の満了時点の前記テーブルの格納内容に応じて当該期間を延長する処理を実行するとともに、アプリケーションプログラムの実行終了後に前記メモリインタフェース回路を介して前記メモリからデータを読み出し、読み出したデータのうち、更新ありを示す識別子と対になっているデータを他方の制御装置へ送信する処理を実行する一方、
待機系である場合には、他方の制御装置から受信したデータで当該データに対応する記憶領域に記憶されているデータを更新することを前記メモリインタフェース回路に指示する処理を実行する
ことを特徴とする制御装置。
【請求項５】
一方が稼働系となり他方が待機系となり等値化通信手段を介して通信を行う２つの制御装置よりなる制御装置対を形成する制御装置であって、
予め定められた周期でアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込む制御部と、
前記メモリと前記制御部との間のデータ授受を仲介するメモリインタフェース回路と、を含み、
前記メモリインタフェース回路は、
等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶するテーブルと、
前記制御部からのデータ書き込み指示に応じて前記メモリへのデータの書き込みを行うとともに前記テーブルの格納内容の更新を行う一方、前記制御部から読み出しを指示されたデータを前記メモリから読み出し、当該データに対応する識別子とともに前記制御部へ返信するアドレスデコード回路と、を有し、
前記制御部は、
自身が稼働系である場合には、前記メモリインタフェース回路を介して読み出したデータと識別子とを対にして他方の制御装置へ送信する処理をアプリケーションプログラムの実行周期毎に実行する一方、
自身が稼働系である場合には、アプリケーションプログラムの実行周期毎に予め定められた時間長の期間に亙ってアプリケーションプログラムを実行し、当該期間の満了時点の前記テーブルの格納内容に応じて当該期間を延長する処理を実行するとともに、アプリケーションプログラムの実行終了後に前記メモリインタフェース回路を介して前記メモリからデータを読み出したデータと識別子とを対にして他方の制御装置へ送信する処理を実行する一方、
待機系である場合には、他方の制御装置から受信したデータのうち更新有りを示す識別子と対になっているもので当該データに対応するものとして自身のメモリに記憶されているデータを更新することを前記メモリインタフェース回路に指示する処理を実行する
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器を制御する制御装置を二重化した制御システムに関し、特に制御装置による演算結果の等値化技術に関する。
【背景技術】
【０００２】
工場や各種プラント等の産業施設においては、各種操業を制御するために制御システムと呼ばれる通信システムが構築されることが多い。制御システムには、産業施設内に設置されたセンサからの監視データの収集やその収集結果に応じて電動機等の駆動制御を行う制御装置が含まれている。このような制御装置としては、ＤＣＳ（Distributed
Control System：分散型制御システム或いは分散型制御装置）やプログラマブルロジックコントローラ（以下、ＰＬＣ）が用いられる。一般的なＦＡ（Factory Automation）システムでは制御装置としてＰＬＣが用いられることが多く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多い。ＤＣＳはＰＬＣに比較して信頼性が高いからである。
【０００３】
この種の制御システムでは、制御装置の故障に起因する操業停止を回避するために、制御装置の二重化が行われる場合がある。具体的には、制御システムに２台の制御装置を設け、その一方を稼働系、他方を待機系として動作させる、といった具合である。以下では、制御装置の二重化された制御システムを「冗長化制御システム」と呼ぶ。稼働系の制御装置は、機器制御のための所定の演算をアプリケーションプログラムにしたがって実行し、待機系の制御装置は稼働系の制御装置の停止に備える。そして、待機系の制御装置は、稼働系の制御装置が停止するとき（或いは停止したとき）には、以降、稼働系として動作する。稼働系の制御装置の停止の具体例としては、何らかの故障や不具合の発生に起因する予期せぬ停止や、保守メンテナンス等による予め計画された停止などが考えられる。待機系の制御装置はこれら２種類の停止の両方に備える。このような冗長化制御システムでは、２つの制御装置の各々が他方の状態監視を行えるようにするために、通信ケーブルを介してそれら２つの制御装置を接続することが多い。
【０００４】
冗長化制御システムでは、稼働系の制御装置に故障が発生しても稼働系／待機系の切り替えを行うことで、制御対象機器の制御のための演算およびその演算結果に応じた制御を継続することが可能であるが、単に稼働系／待機系の切り替えを行うだけでは、その切り替え前後で上記演算結果が突変するなどの不具合が発生する場合がある。このような不具合の発生を回避するために、冗長化制御システムでは、稼働系における演算結果を上記通信ケーブル経由で待機系に送信し記憶させる等値化処理が周期的に実行される。より詳細に説明すると、冗長化制御システムでは、アプリケーションプログラムにしたがって実行される一連の処理（監視データの収集、その監視データに基づく制御データの演算、および制御データの送信等、以下、当該一連の処理をタクトと呼ぶ）を一区切りとし、図８に示すようにタクトとそれに後続する等値化処理とが一定の周期で繰り返し実行される。これにより、稼働系／待機系の切り替え前後で演算結果の突変が発生することを防止しつつ、制御装置の故障に起因する操業停止を回避することが可能になる。以下では、上記一定の周期を「アプリケーション実行周期」と呼び、上記通信ケーブルを「等値化ケーブル」と呼ぶ。
【０００５】
アプリケーション実行周期毎に実行される等値化処理の流れは概ね以下の通りである。稼働系の制御装置の制御部（例えば、マイクロコンピュータ）はアプリケーションプログラムにしたがった演算の結果を自身のメモリに書き込んで行く。稼働系の制御装置の制御部は、タクトの終了時点などの等値化タイミングにおいて、自身のメモリに記憶されているデータのうち等値化対象となっている記憶領域に記憶されているデータを自身の通信インタフェース部の通信バッファにコピーする。このようにして通信バッファにコピーされたデータは等値化ケーブルを介して待機系の制御装置に送信される。待機系の制御装置は等値化ケーブルを介して受信したデータを、自身のメモリにおいて等値化対象となっているメモリ領域に展開する。これにより等値化処理が完了する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１４８５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
冗長化制御システムにおけるアプリケーション実行周期は、タクトの実行に要する時間と等値化処理に要する時間の和に対して充分に余裕を持たせて（すなわち、両者の和よりも長く）定められることが多い。しかし、冗長化制御システムにおいてアプリケーションプログラムにしたがって更新されるデータの更新周期とアプリケーション実行周期とは必ずしも一致せず、等値化処理の実行タイミングにおいて、等値化対象の記憶領域の一部の格納内容しか更新されない場合がある。図８に示す例では、記憶領域ＡＲＥＡ０〜ＡＲＥＡ３が等値化対象となっている。図８におけるアプリケーション実行周期Ｔ１では、等値化対象の記憶領域の全てについてデータが更新されているが、アプリケーション実行周期Ｔ２では記憶領域ＡＲＥＡ０およびＡＲＥＡ２のデータは更新されておらず、アプリケーション実行周期Ｔ３においては等値化対象の全ての記憶領域のデータが更新されていない。
【０００８】
更新されなかった記憶領域のデータについては、通信バッファへのコピーや待機系への送信を行う必要がないことは言うまでもない。しかし、従来の冗長化制御システムでは、等値化対象とされた全ての記憶領域について、データの更新の有無に拘らず、通信バッファへのコピーや待機系への送信が行われていた。つまり、従来の冗長化制御システムにおける等値化処理には無駄な処理が含まれており、当該無駄な処理を実行する分だけアプリケーション実行周期内でタクトに割り当て可能な期間（以下、アプリケーションプログラムの実行帯域）が圧迫されるという問題があり、特に、プラント制御用の冗長化制御システムにおいて、この問題は顕著であった。その理由は以下の通りである。上記のようなデータ更新周期のバラツキが発生する要因の一つとしては監視データの送信元（或いは制御データの送信先）がデジタル機器であるかアナログ機器であるかが挙げられる。一般に、データの入出力周期は機器毎に異なるが、デジタル機器のデータ入出力周期はアナログ機器のデータ入出力周期に比較して短いことが多い。プラント設備には、デジタル機器とアナログ機器の両者が含まれこと多く、また、それらの種類も多様であることに加えて、アプリケーション実行周期が２００ミリ秒〜１秒とＦＡシステムに比較して長いため、上記問題が顕著に現れるのである。
【０００９】
本発明は上記課題に鑑みて為されたものであり、冗長化制御システムにおける等値化処理にて、アプリケーションプログラムの実行帯域を狭める無駄なデータ送信の発生を回避する技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明は、一方が稼働系となり他方が待機系となり等値化通信手段を介して通信を行う２つの制御装置を備えた制御システムの各制御装置に、以下のアプリケーション実行手段、データ管理手段、送信手段および受信手段を設けることを特徴とする。アプリケーション実行手段は、予め定められた周期でアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込む。データ管理手段は、等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶する。送信手段は、メモリに記憶されているデータのうち、更新ありを示す識別子がデータ管理手段に記憶されている記憶領域のデータを読み出して他方の制御装置へ送信する送信処理を自身が稼働系である場合にアプリケーションプログラムの実行周期毎に実行する。そして、受信手段は、他方の制御装置から受信したデータで、当該データに対応するものとして自身のメモリに記憶されているデータを更新する受信処理を自身が待機系である場合に実行する。
【００１１】
本発明の制御システムにおいてアプリケーションプログラムの実行周期毎に実行される等値化のための通信では、等値化対象のデータのうち前回の等値化処理以降に更新されたデータのみが稼働系の制御装置から待機系の制御装置へ送信され、待機系の制御装置では、稼働系から受信したデータについてのみメモリへのコピーが行われる。このため、本発明の制御システムでは、従来の冗長化制御システムに比較して無駄なデータ（すなわち、前回の等値化処理以降に更新されていないデータ）の伝送およびコピーが行われることはなく、その分だけアプリケーションの実行に帯域を割り当てることができる。
【００１２】
特許文献１には、制御装置に実行させる命令の各々について現用系（稼働系）と待機系の何れを処理担当装置とするのかを命令毎に予め定めておき、稼働系と待機系とで処理分散することで稼働系の処理負荷を軽減する技術が開示されている。しかし、特許文献１に開示の技術は、稼働系から待機系への無駄なデータ送信等の発生を回避する技術ではなく、本願発明とは全く異なる技術である。
【００１３】
本発明の別の態様としては、上記送信手段に代えて、メモリに記憶されているデータと当該データに対応する前記識別子とを対にして他方の制御装置へ送信する処理を自身が稼働系である場合にアプリケーションプログラムの実行周期毎に実行する送信手段を各制御装置に設けるとともに、上記受信手段に代えて、他方の制御装置から受信したデータのうち、更新ありを示す識別子と対になっているデータで当該データに対応するものとして自身のメモリに記憶されているデータを更新する処理を自身が待機系である場合に実行する受信手段を各制御装置に設ける態様が考えられる。このような態様によっても、従来の冗長化制御システムに比較して無駄なデータ（すなわち、前回の等値化処理以降に更新されていないデータ）のコピーが行われることはなく、その分だけアプリケーションの実行に帯域を割り当てることができる。
【００１４】
アプリケーションプログラムの実行周期におけるアプリケーションプログラムの実行に対する帯域の割り当てと等値化処理のための帯域の割り当ての具体的な態様としては、以下の２つの態様が考えられる。第１に、１つ手前の時間区間におけるアプリケーションプログラムの実行結果についての等値化処理を行った後にアプリケーションプログラムを実行する態様である。そして、第２に、アプリケーションプログラムの実行とその実行結果についての等値化処理とをこの順に行う態様である。後者の態様の場合、アプリケーション実行手段にはアプリケーションプログラムの実行周期毎に予め定められた時間長の期間に亙ってアプリケーションプログラムを実行させるとともに、当該期間の満了時点のデータ管理手段の格納内容に応じて当該期間を延長する処理を実行させ、送信手段には、アプリケーションプログラムの実行周期において、アプリケーション実行手段によるアプリケーションプログラムの実行終了後に送信処理を実行させるようにすれば良い。また、この延長された期間においては、従前のアプリケーションプログラムの実行を継続させても良いし、予め定められた優先順位に応じて選択した他のアプリケーションプログラムを実行させても良い。
【００１５】
また、上記課題を解決するために本発明は、冗長化制御システム用の制御装置として、以下の制御装置を提供する。この制御装置は、従来の冗長化制御システムにおける制御装置と同様に、一方が稼働系となり他方が待機系となる制御装置対を形成するとともに、等値化通信手段を介して通信を行う。本発明の制御装置は、以下の制御部とメモリインタフェース回路とを有することを特徴とする。制御部は、アプリケーションプログラムの実行周期毎にアプリケーションプログラムを実行し、その実行過程で生成されるデータをメモリ内の記憶領域に書き込む。メモリインタフェース回路は、メモリと制御部との間のデータ授受を仲介する。
【００１６】
上記メモリインタフェース回路は、以下のテーブルとアドレスデコード回路とを有する。上記テーブルには、メモリの記憶領域毎に前回の等値化処理以降のデータ更新の有無を示す識別子が格納される。アドレスデコード回路は、制御部からのデータ書き込み指示に応じてメモリへのデータの書き込みを行うとともに上記テーブルの格納内容の更新を行う。また、アドレスデコード回路は、制御部から読み出しを指示されたデータをメモリから読み出し、当該データに対応する識別子とともに制御部へ返信する。そして、上記制御部は、自身が稼働系である場合には、メモリインタフェース回路を介して読み出したデータのうち、更新ありを示す識別子と対になっているデータを他方の制御装置へ送信する送信処理をアプリケーションプログラムの実行周期毎に実行する一方、待機系である場合には、他方の制御装置から受信したデータで当該データに対応する記憶領域に記憶されているデータを更新することをメモリインタフェース回路に指示する受信処理を実行する。
【００１７】
このような制御装置を用いて冗長化制御システムにおける制御装置対を形成すれば、従来の冗長化制御システムに比較して無駄なデータ（すなわち、前回の等値化処理以降に更新されていないデータ）の伝送およびコピーを排除し、その分だけアプリケーションの実行に帯域を割り当てることが可能になる。本態様においても、上記送信処理に代えて、メモリインタフェース回路を介して取得したデータと当該データの更新の有無を示す識別子とを対にして他方の制御装置へ送信する送信処理を実行させるとともに、上記受信処理に代えて、更新ありを示す識別子と対になっているデータで当該データに対応するものとして自身のメモリに記憶されているデータを更新することをメモリインタフェース回路に指示する受信処理を実行させるようにしても良い。
【発明の効果】
【００１８】
本発明によれば、冗長化制御システムにおける等値化処理にてアプリケーションプログラムの実行帯域を狭める無駄なデータ送信の発生を回避することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態の制御装置１０の構成例および同制御装置１０を含む制御システムの構成例を示すブロック図である。
【図２】同制御装置１０に含まれるメモリＩ／Ｆ回路１１０の構成例を示すブロック図である。
【図３】同メモリＩ／Ｆ回路１１０に含まれるアドレス一致検出回路１１４０（ｎ）の構成例を示す図である。
【図４】同メモリＩ／Ｆ回路１１０に含まれる更新レジスタ１１６の格納内容の一例を示す図である。
【図５】本実施形態の動作例を示す図である。
【図６】本実施形態の等値化データを説明するための図である。
【図７】変形例（１）を説明するための図である。
【図８】従来の冗長化制御システムのおける等値化処理を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１は、本発明の一実施形態の制御装置の構成例および同制御装置を含む制御システムの構成例を示すブロック図である。この制御システムは、プラントなどの産業施設に敷設され、当該産業施設に設置されたセンサ等から収集される監視データに基づいて制御対象機器（例えば、電動機など）の駆動制御を行い、当該産業施設の操業を支援するシステムである。図１に示すように、この制御システムは、制御ネットワーク３０に各々接続された制御装置１０Ａおよび制御装置１０Ｂを含んでいる。図１では詳細な図示を省略したが、制御ネットワーク３０には、監視データの送信元となるセンサ等と、制御対象機器とが接続されている。制御ネットワーク３０に接続されるセンサや制御対象機器には、デジタル機器とアナログ機器の両者が混在していても良く、何れか一方のみであっても良い。
【００２１】
図１に示すように、制御装置１０Ａと制御装置１０Ｂは等値化ケーブル２０を介して互いに接続されている。図１に示す制御システムでは、制御装置１０Ａと制御装置１０Ｂのうちの何れか一方が稼働系となって制御対象機器の駆動制御のための演算を行い、他方は待機系となって稼働系の故障に備える。つまり、図１に示す制御システムは冗長化制御システムである。以下では、制御装置１０Ａが稼働系となっている場合について説明する。制御装置１０Ａおよび１０Ｂの各々は例えばＤＣＳである。図１に示すように、制御装置１０Ａの構成と制御装置１０Ｂの構成は同一である。このため、以下では、制御装置１０Ａと制御装置１０Ｂを区別する必要がない場合には、「制御装置１０」と表記する。本実施形態では、制御対象がプラント設備であるため、制御装置１０としてＤＣＳを用いるが、ＰＬＣを用いても勿論良い。
【００２２】
制御装置１０は、制御部１００、メモリＩ／Ｆ回路１１０、メモリ１２０、および通信Ｉ／Ｆ回路１３０を有している。制御部１００はマイクロコンピュータである。制御部１００は、図示せぬ不揮発性メモリに予め記憶された制御プログラムを実行することにより、制御装置１０の制御中枢として働く。例えば、制御プログラムにしたがって作動している制御部１００は、制御対象機器の作動制御のための各種演算を上記不揮発性メモリに予め記憶されたアプリケーションプログラムにしたがって実行し、その演算結果のデータをメモリ１２０に書き込む。すなわち、制御プログラムにしたがって作動している制御部１００は、アプリケーションプログラムを実行し、その実行結果のデータをメモリ１２０に書き込むアプリケーション実行手段として機能する。制御部１００を制御プログラムにしたがって作動させることで実現される機能としては、アプリケーションプログラムを実行するアプリケーション演算機能の他に、初期化機能、および等値化データ生成・展開機能が挙げられる。
【００２３】
初期化機能とは、制御システムの立ち上げの際（より正確には制御装置１０の電源投入の際）に、メモリＩ／Ｆ回路１１０、通信Ｉ／Ｆ回路１３０およびメモリ１２０の初期化（各種パラメータの設定やアドレス割り当てなど）を行う機能である。等値化データ生成・展開機能は、前述した等値化処理を実現する機能である。制御部１００を制御プログラムにしたがって作動させることで実現される３つの機能のうち、本実施形態の特徴は、アプリケーション演算機能および等値化データ生成・展開機能に現れている。アプリケーション演算機能および等値化データ生成・展開機能の詳細については、重複を避けるために動作例において明らかにする。
【００２４】
メモリ１２０は例えばＲＡＭ（Random Access memory）などの揮発性メモリである。図１に示すように、メモリ１２０は、メモリＩ／Ｆ回路１１０を介して制御部１００に接続されている。メモリ１２０には複数の記憶領域が設けられており、制御部１００は初期化処理にて各記憶領域に割り当てた論理アドレス（以下、単に「アドレス」）を指定することでそのアドレスに対応する記憶領域に格納されているデータの読出しや当該記憶領域へのデータの書き込み（以下、両者をまとめて「アクセス」と呼ぶ場合がある）を行うことができる。メモリ１２０の複数の記憶領域のうちのいくつかには、他方の制御装置１０との等値化の対象となるデータが書き込まれる。本実施形態では、等値化対象のデータが書き込まれる記憶領域に領域名ＡＲＥＡｎ（ｎ＝０〜Ｎ：Ｎは自然数）を付与し、これら領域名で各記憶領域を識別する。また、以下では、領域名ＡＲＥＡｎの記憶領域には、前述した初期化機能によりアドレスａｄｒ（ｎ）が割り当てられる場合について説明する。
【００２５】
メモリＩ／Ｆ回路１１０は、メモリ１２０に記憶されている各種データに対する制御部１００によるアクセスを仲介するＬＳＩである。図２は、メモリＩ／Ｆ回路１１０の構成例を示すブロック図である。図２に示すように、メモリＩ／Ｆ回路１１０は、２つのレジスタ（図２に示すようにアドレステーブルレジスタ１１２および更新レジスタ１１６）と、アドレスデコード回路１１４とを含んでいる。
【００２６】
アドレステーブルレジスタ１１２は、他方の制御装置１０との等値化の対象となるデータのメモリ１２０における格納先を示すアドレスを格納するレジスタである。図２に示すように、アドレステーブルレジスタ１１２は、Ｎ（図２に示す例では、Ｎ＝１５）＋１個の記憶領域を有しており、各記憶領域には１つのアドレスが格納される。例えば、アドレステーブルレジスタ１１２のｎ番目の記憶領域には、アドレスａｄｒ（ｎ）が格納されるといった具合である。アドレステーブルレジスタ１１２への各アドレスの書き込みは、制御部１００の初期化機能により実現される。
【００２７】
更新レジスタ１１６は、Ｎ＋１ビットのレジスタである。更新レジスタ１１６の第ｎビットｂ（ｎ）はアドレスａｄｒ（ｎ）の示す記憶領域に対応する。なお、本実施形態では、更新レジスタの最上位ビットはｂ（１５）であり、最下位ビットはｂ（０）である。更新レジスタ１１６の各ビットは、制御部１００の初期化機能により、“０”に初期化される。そして、アドレスａｄｒ（ｎ）の示す記憶領域内のデータの更新を契機として更新レジスタ１１６の第ｎビットｂ（ｎ）は“１”に更新される。つまり、更新レジスタ１１６の第ｎビットｂ（ｎ）は、アドレスａｄｒ（ｎ）の示す記憶領域内のデータの更新の有無を表す識別子の役割を果たす。
【００２８】
アドレスデコード回路１１４は、制御部１００から与えられるアドレスの示すデータのメモリ１２０における格納位置を特定し、当該データの読出しおよび書き込みを行う回路である。そして、アドレスデコード回路１１４は、制御部１００からのデータ書き込み指示に応じて更新レジスタ１１６の格納内容を更新する処理、および、制御部１００から読み出しを指示されたデータの更新の有無をアドレステーブルレジスタ１１４および更新レジスタ１１６の格納内容を参照して制御部１００へ通知する処理を実行する。また、アドレスデコード回路１１４は、制御部１００により等値化処理の完了と通知されると、更新レジスタ１１６の構成ビットを全て“０”にリセットする。つまり、本実施形態のアドレスデコード回路１１４は、等値化のための前回のデータ通信以降のデータ更新の有無を示す識別子をメモリ１２０の記憶領域毎に記憶するデータ管理手段の役割を果たすのである。
【００２９】
図２に示すように、アドレスデコード回路１１４は、アドレステーブルレジスタ１１２の各記憶領域に各々対応するアドレス一致検出回路１１４０（ｎ）（ｎ＝０〜Ｎ）を含んでいる。なお、図２では、図が煩雑になることを避けるため、１１４０（０）と１１４０（１５）以外の符号は省略されている。アドレス一致検出回路１１４０（ｎ）の一方の入力端子には、データの書き込み先を指定するために制御部１００からメモリＩ／Ｆ回路１１０に出力されたアドレスが与えられ、他方の入力端子にはアドレステーブルレジスタ１１２のｎ番目の記憶領域に格納されているアドレス（すなわち、ａｄｒ（ｎ）アドレス）が与えられる。アドレス一致検出回路１１４０（ｎ）の具体的な構成例としては種々の態様が考えられるが、ａｄｒ（ｎ）がＭ（任意の自然数）ビットのアドレスである場合には、図３に示す構成が考えられる。
【００３０】
図３には、Ｍ＝１６の場合のアドレス一致検出回路１１４０（ｎ）の構成例が示されている。図３に示すように、アドレス一致検出回路１１４０（ｎ）は、Ｍ個のＥｘ−ＮＯＲ回路１１４０ａ（ｎ）（ｍ）（ｍ＝０〜Ｍ−１）と、ＡＮＤ回路１１４０（ｎ）ｂとにより構成されている。図３に示すように、Ｅｘ−ＮＯＲ回路１１４０ａ（ｎ）（ｍ）の一方の入力端子には、制御部１００から出力されたアドレスの第ｍビット（図３では、ｉｎ（ｍ）と表記）が与えられ、他方の入力端子にはアドレスａｄｒ（ｎ）の第ｍビット（図３では、ａｄｒ（ｎ）（ｍ）と表記）が与えられる。周知のように、Ｅｘ−ＮＯＲ回路の出力信号は、両入力端子への入力信号が一致する場合に“１”となり、不一致の場合は“０”となる。図３に示すように、Ｅｘ−ＮＯＲ回路１１４０ａ（ｎ）（ｍ）（ｍ＝０〜Ｍ−１）の出力信号はＡＮＤ回路１１４０ｂ（ｎ）に与えられ、ＡＮＤ回路１１４０ｂ（ｎ）の出力信号がアドレス一致検出回路１１４０（ｎ）の出力信号となる。このため、アドレス一致検出回路１１４０（ｎ）の２つの入力端子の各々に与えられたアドレスが一致する場合には、アドレス一致検出回路１１４０（ｎ）の出力信号の信号値は“１”となり、一致しない場合には、“０”となる。
【００３１】
アドレス一致検出回路１１４０（ｎ）の出力端子は更新レジスタ１１６の第ｎビットｂ（ｎ）に接続されている。このため、アドレスａｄｒ（ｎ）の示すデータの更新が行われると、更新レジスタ１１６の第ｎビットｂ（ｎ）の値は“１”に更新される。例えば、初期化機能による初期化の後、アドレスａｄｒ（３）の示すデータとアドレスａｄｒ（１）のデータとが更新されると、更新レジスタ１１６の格納内容は図４のように更新される。
【００３２】
図１に戻って、通信Ｉ／Ｆ回路１３０は、データ通信用のＬＳＩであり、制御ネットワーク３０に接続されているとともに、等値化ケーブル２０を介して他方の制御装置１０の通信Ｉ／Ｆ回路１３０に接続されている。なお、通信Ｉ／Ｆ回路１３０が実行するデータ通信のうち、制御ネットワーク３０との間のデータ通信については、本実施形態との関連が薄く、従来の制御装置におけるものと特段に変わるところもないため、説明を省略する。図１では詳細な図示を省略したが、通信Ｉ／Ｆ回路１３０は、他方の制御装置１０へ送信するデータを格納する送信バッファと他方の制御装置１０から受信したデータが書き込まれる受信バッファとを有している。稼働系の制御装置１０では、前述した等値化データ生成・展開機能によって、通信Ｉ／Ｆ回路１３０の送信バッファへの等値化対象のデータの書き込みが行われる。稼働系の制御装置１０の通信Ｉ／Ｆ回路１３０は、上記の要領で送信バッファに書き込まれたデータを等値化ケーブル２０を介して待機系の制御装置１０へ送信する。これに対して、待機系の制御装置１０の通信Ｉ／Ｆ回路１３０は、等値化ケーブル２０を介して受信したデータを受信バッファに書き込み、待機系の制御装置１０の制御部１００は、このようにして受信バッファに格納されたデータを用いて自身のメモリ１２０に記憶されているデータの更新（すなわち、等値化）を行う。
以上が制御装置１０の構成である。
【００３３】
次いで、本実施形態の動作に即してアプリケーション演算機能および等値化データ生成・展開機能の詳細について説明する。アプリケーション演算機能は、アプリケーション実行周期における予め定められた時間長ＴＤの期間に亙ってアプリケーションプログラムを実行する機能であり、この点は従来の制御装置におけるアプリケーション演算機能と特段に変わるところはない。本実施形態のアプリケーション演算機能は、上記期間の満了の際に更新レジスタ１１６の格納内容を参照し、値が“１”となっているビットが少ないほど（すなわち、未更新の等値化対象のデータが多いほど）、延長幅を長くして上記期間を延長することにその特徴がある。
【００３４】
図５には、Ｎ＝３（すなわち、記憶領域ＡＲＥＡ０〜ＡＲＥＡ３の合計４つの記憶領域に格納されるデータが等値対象）、かつ、時間長ＴＤの期間の満了時点の更新レジスタ１１６にて値が“０”のビットの数×時間長ΔＴを延長幅とする場合の動作例が示されている。図５におけるアプリケーション実行周期Ｔ１では、時間長ＴＤの期間の満了の時点では、等値化対象の全てのデータが更新され、更新レジスタ１１６の構成ビットが全て１となっているため、上記期間延長は行われない。これに対して、アプリケーション実行周期Ｔ２では、時間長ＴＤの期間の満了の時点では、等値化対象のデータのうちの２つが更新され、更新レジスタ１１６の構成ビットのうちの２つは“０”であるため、２×ΔＴだけ上記期間延長が延長されている。そして、アプリケーション実行周期Ｔ３では、時間長ＴＤの期間の満了の時点では、等値化対象のデータは更新されておらず、更新レジスタ１１６の構成ビットの構成ビットは全て“０”であるため、４×ΔＴだけ上記期間延長が延長され、等値化処理の実行が省略されている。
【００３５】
ここで、更新レジスタ１１６の格納内容に応じた延長幅については適宜実験を行って好適な値に定めるようにすれば良い。後述するように、本実施形態の等値化データ生成・展開機能では、前回の等値化処理以降に更新のあったデータについてのみ、稼働系における送信バッファへのコピー、稼働系から待機系への送信、および待機系におけるメモリ１２０への展開が行われるため、未更新のデータが多いほど等値化処理に要する時間は短くなる。したがって、上記延長幅を適切に定めておけば、未更新の等値化対象のデータが多いほど延長幅を大きくしたとしても、アプリケーション実行周期内に等値化処理が完了しないなどの問題は生じることはない。本実施形態では、時間長ＴＤの期間の満了時点の更新レジスタ１１６にて値が“０”のビットの数に応じた延長幅で上記期間を延長したが、上記期間の満了の際の更新レジスタ１１６の構成ビットの全てが“１”でなければ、予め定めた時間長ΔＴだけ延長し、当該延長期間の満了時点で再延長が可能であるか否かを更新レジスタ１１６の格納内容に応じて判定する処理を繰り返し行うようにしても良く、再延長可能であるか否かの判定を行う時間間隔を、更新のあったデータが増えるほど狭めるようにしても良い。
【００３６】
次いで、等値化データ生成・展開機能について詳細に説明する。稼働系の制御装置１０の制御部１００は、アプリケーション演算機能によるアプリケーションプログラムの実行完了後、まず、メモリＩ／Ｆ回路１１０を介して更新レジスタ１１６の格納内容を読み出す。次いで、稼働系の制御装置１０の制御部１００は、更新レジスタ１１６の構成ビットに“１”が設定されている記憶領域のデータをメモリＩ／Ｆ回路１１０を介してメモリ１２０から読み出す。そして、稼働系の制御装置１０の制御部１００は、更新レジスタ１１６の格納内容と上記の要領でメモリ１２０から読み出したデータとを用いて等値化データを生成し、この等値化データを通信Ｉ／Ｆ回路１３０の送信バッファに書き込む。
【００３７】
図６（ａ）は、Ｎ＝１５の場合の等値化データの一例を示す図である。等値化データでは、図６（ａ）に示すように、先頭に更新レジスタ１１６の構成ビットを最上位ビットから順に最下位ビットまで並べたデータ識別子が配置され、これら識別子の配列に後続して各識別子に対応するデータが配置される。図６（ａ）には、ＡＲＥＡ３のデータとＡＲＥＡ１のデータとが更新された場合の等値化データが例示されている。この場合、更新レジスタ１１６の格納内容は“００００００００００００１０１０”（１６進数標記では、０ｘ０００Ａ）となるため、データ識別子として０ｘ０００Ａが設定されている。このデータ識別子は、当該データ識別子に２つのデータが後続していること、および当該２つのデータがＡＲＥＡ３およびＡＲＥＡ１のデータであることを示している。前述したように、稼働系の制御装置１０の通信Ｉ／Ｆ部１３０は、送信バッファに格納されたデータ（本実施形態では、等値化データ）を等値化ケーブル２０を介して待機系の制御装置１０へ送信する。
【００３８】
つまり、本実施形態では、等値化対象のデータのうち、前回の等値化処理の実行以降に更新されたデータのみが稼働系の制御装置１０から待機系の制御装置１０へ送信され、等値化データに含まれるデータ識別子は、等値化対象のデータのうちの何れが更新されたのかを待機系の制御装置１０に伝達する役割を果たすのである。なお、本実施形態では、稼働系の制御装置１０から待機系の制御装置１０へ送信する等値化データとして、図６（ａ）に示すデータ構造のデータを用いたが、図６（ｂ）に示すように等値化対象の各データをセパレータＳＰ（例えば、タブコードなど）で区切って配列した等値化データを用いても良い。このような等値化データにおいては、連続するセパレータはその間のデータに更新が無かったことを意味するため、上記識別子の配列を用いることなく、等値化対象のデータのうちの何れが更新されたのかを待機系の制御装置１０に伝達するこが可能になる。また、稼働系の制御装置１０と待機系の制御装置１０との間の通信として、Ｓｙｎｃメッセージ等による同期を行った後に、タイムスロット毎に所定のデータを送信する（例えば、Ｓｙｎｃ直後のタイムスロットをＡＲＥＡ１５のデータ専用、その次のタイムスロットをＡＲＥＡ１４専用・・・等）形式のデータ通信を採用し、更新のあったデータのみを送信する場合には、タイムスロットにより各データの識別が可能であるため、この場合も、上記識別子を用いる必要はない。
【００３９】
稼働系の制御装置１０から待機系の制御装置１０へ送信された等値化データは、待機系の制御装置１０の通信Ｉ／Ｆ部１３０の受信バッファに格納される。待機系の制御装置１０の通信Ｉ／Ｆ部１３０は、受信バッファに格納された等値化データを読み出し、制御部１００に与える。待機系の制御装置１０の制御部１００は、通信Ｉ／Ｆ部１３０から引き渡され等値化データを参照し、当該等値化データに含まれているデータ識別子を参照して、更新されたデータを特定し、当該データに対応するものとして自身のメモリ１２０に格納されているデータを当該受信データで更新（上書き）する。
【００４０】
以上説明したように、本実施形態によれば、冗長化制御システムにおける等値化処理にて、無駄なデータコピーや無駄なデータ送信の発生を回避することができ、アプリケーションプログラムの実行帯域を最大限に割り当てることが可能になる。
【００４１】
以上本発明の一実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
（１）上記実施形態では、アドレステーブルレジスタ１１２と更新レジスタ１１６を別個のレジスタとしたが、図７に示すように両者を一体としたテーブル（等値化のための前回の通信以降のデータ更新の有無を示す更新識別子を前記メモリの記憶領域毎に記憶するテーブル）をメモリＩ／Ｆ回路１１０に記憶させておいても良い。このように、アドレステーブルレジスタ１１２と更新レジスタ１１６とを一体にしたとしても、メモリＩ／Ｆ回路１１０が、等値化のための前回の通信以降のデータ更新の有無を示す識別子を前記メモリの記憶領域毎に記憶するデータ管理手段として機能することには変わりないからである。
【００４２】
（２）上記実施形態では、等値化対象のデータのうち、前回の等値化処理以降に更新されたデータのみを稼働系の制御装置１０から待機系の制御装置１０へ送信し、稼働系の制御装置１０には等値化ケーブルを介して受信したデータで自装置の該当データを更新させた。しかし、等値化対象の全てのデータを更新の有無を問わずに、更新レジスタ１１６の各構成ビットと対にして稼働系の制御装置１０から待機系の制御装置１０へ送信し、待機系の制御装置１０には更新有りを示すフラグと対になっているデータのみを対象として、等値化ケーブル２０を介して受信したデータで自装置の該当データを更新させても良い。このような態様によっても、待機系の制御装置１０における無駄なデータコピー（未更新のデータについての待機系の制御装置での受信バッファからメモリ１２０へのコピー）を排除して等値化処理に要する帯域を削減し、その分だけアプリケーションプログラムの実行に帯域を割り当てることが可能になるからである。
【００４３】
本態様は、上記実施形態に比較して稼働系の制御装置１０の処理負荷は軽くなるものの、等値化ケーブルを介した稼働系の制御装置１０から待機系の制御装置１０へのデータ送信に広い通信帯域を要する。このため、稼働系の制御装置１０の処理負荷軽減の方が優先される場合には本態様を採用することが好ましく、等値化ケーブルを介した稼働系の制御装置１０から待機系の制御装置１０へのデータ送信の通信帯域の削減が優先される場合には上記実施形態の態様が好ましい。
【００４４】
（３）上記実施形態では、各アプリケーション実行周期において、まず、予め定められた期間ＴＤに亙ってアプリーションプログラムを実行し、その後、等値化処理を実行する場合について説明した。しかし、各アプリケーション実行周期において、一つ前のアプリケーション実行周期におけるアプリケーションプログラムの実行により更新されたデータの等値化を行い、残った時間をアプリケーションプログラムの実行に割り当てても良い。このような態様によっても、稼働系の制御装置１０における無駄なデータコピーを排除して等値化処理に要する帯域を削減し、その分だけアプリケーションプログラムの実行に帯域を割り当てることが可能になるからである。また、このような態様では、各アプリケーション実行周期においてアプリケーションプログラムの実行に割り当て可能な期間がその実行開始前に判っているため、上記実施形態のように更新レジスタ１１６の格納内容を参照して当該期間の延長の可否を逐一判定する必要はない。
【００４５】
（４）アプリケーション実行周期において制御部１００に実行させるアプリケーションプログラムは１つであっても良いし、複数であっても良い。複数のアプリケーションプログラムを実行させる態様においては、アプリケーションプログラム毎に予め優先順位を定めておき、制御部１００には、各アプリケーション実行周期における予め定められた時間長の期間ＴＤおよび延長後の期間において実行するアプリケーションプログラムを優先順位にしたがって選択させるようにすれば良い。期間ＴＤにおいては最も優先順位の高いアプリケーションプログラムを実行し、延長後の期間においてはより優先順位の低いアプリケーションプログラムを実行する、といった具合である。例えば、等値化処理を要するアプリケーションプログラムと等値化処理を要さないアプリケーションプログラムの２種類を実行させる場合には前者の優先順位を高くしておき、期間ＴＤでは前者が実行され、延長期間で後者が実行されるようにするのである。このような態様であれば、後者のアプリケーションプログラムの実行により更新レジスタ１１６が更新されることはなく、等値化処理のための時間が不足するといった事態の発生を回避しつつ、アプリケーションプログラムの実行帯域を最大限に割り当てることが可能になる。
【００４６】
（５）上記実施形態では本発明の実施形態の一つである制御装置１０により制御装置対が形成された冗長化制御システムについて説明したが、制御装置１０を単体で提供（すなわち、製造・販売）しても良い。既存の冗長化制御システムにおいて制御装置対を形成している各制御装置を制御装置１０で置き換えることで、既存の冗長化制御システムを本発明の制御システムとして機能させることができるからである。
【符号の説明】
【００４７】
１０，１０Ａ，１０Ｂ…制御装置、２０…等値化ケーブル、３０…制御ネットワーク、１００…制御部、１１０…メモリＩ／Ｆ回路、１１２…アドレステーブルレジスタ、１１４…アドレスデコード回路、１１１４０（ｎ）（ｎ＝０〜Ｎ）…アドレス一致検出回路、１１４０ａ（ｎ）（ｍ）（ｍ＝０〜Ｍ）…ＥＸ−ＮＯＲ回路、１１４０ｂ（ｎ）…ＡＮＤ回路、１１６…更新レジスタ、１２０…メモリ、１３０…通信Ｉ／Ｆ回路、
【図１】
0006304048.tif 000002
【図２】
0006304048.tif 000003
【図３】
0006304048.tif 000004
【図４】
0006304048.tif 000005
【図５】
0006304048.tif 000006
【図６】
0006304048.tif 000007
【図７】
0006304048.tif 000008
【図８】
0006304048.tif 000009