(57)【要約】【課題】ユーザに余計な手間を掛けさせることなく、稼動系コントローラと待機系コントローラの外部記憶メディア内データの同一性をほぼ保証できる。【解決手段】システムファンクションブロック１１ｂは、従来と同様に自コントローラの外部記憶メディアへのユーザデータのバックアップを行わせると共に（ステップＳ１１）、予め設定される２重化設定情報に基づいて２重化を行うか否かを判定し（ステップＳ１２，Ｓ１３）、２重化を行う場合には（ステップＳ１３，ＹＥＳ）、待機系コントローラに対する外部記憶メディアへのデータ書込み要求を出す（上記ユーザデータを含むメッセージを送信させる）。これにより、待機系コントローラ側では、自己の外部記憶メディアへのユーザデータ書込みが行われる。【選択図】図３
2008226111.tif 000002
【特許請求の範囲】
【請求項１】
複数の定周期プログラムを実行する稼動系コントローラと、待機系コントローラと、各Ｉ／Ｏユニットとがシステムバスに接続された２重化コントローラシステムであって、
前記稼動系コントローラは、
自己に接続された第１の外部記憶メディアに対するデータ書込み／読出し処理を行う第１の外部記憶メディア・アクセス手段と、
予め設定される２重化設定情報を記憶する２重化設定情報記憶手段と、
前記各Ｉ／Ｏユニットの制御に係るユーザデータを記憶するユーザデータ記憶手段と、
前記ユーザデータ記憶手段に記憶されるユーザデータを更新するユーザデータ更新手段と、
前記ユーザデータ記憶手段に記憶されるユーザデータを、前記第１の外部記憶メディア・アクセス手段により前記第１の外部記憶メディアに書き込ませると共に、前記２重化設定情報記憶手段の２重化設定情報に基づいて２重化を行うか否かを判定し、２重化を行う場合には、前記待機系コントローラに対する外部記憶メディア書込み要求を発行するデータバックアップ手段と、
該データバックアップ手段により該待機系コントローラに対する外部記憶メディア書込み要求が発行された場合、前記待機系コントローラに対して前記システムバスを介して、前記外部記憶メディア又は前記ユーザデータ記憶手段に記憶された前記ユーザデータを含むメッセージを送信するメッセージ送信手段とを有し、
前記待機系コントローラは、
自己に接続された第２の外部記憶メディアに対するデータ書込み／読出し処理を行う第２の外部記憶メディア・アクセス手段と、
前記メッセージを受信すると、該メッセージに含まれる前記ユーザデータを、前記第２の外部記憶メディア・アクセス手段により前記第２の外部記憶メディアに書き込ませる第２の外部記憶メディア・管理手段と、
を有することを特徴とする２重化コントローラシステム。
【請求項２】
データバックアップ手段は、予め設定されるシステムプログラムにより実現されることを特徴とする請求項１記載の２重化コントローラシステム。
【請求項３】
複数の定周期プログラムを実行する稼動系コントローラと、待機系コントローラと、各Ｉ／Ｏユニットとがシステムバスに接続された２重化コントローラシステムにおける前記稼動系コントローラであって、
自己に接続された第１の外部記憶メディアに対するデータ書込み／読出し処理を行う第１の外部記憶メディア・アクセス手段と、
予め設定される２重化設定情報を記憶する２重化設定情報記憶手段と、
前記各Ｉ／Ｏユニットの制御に係るユーザデータを記憶するユーザデータ記憶手段と、
前記ユーザデータ記憶手段に記憶されるユーザデータを更新するユーザデータ更新手段と、
前記ユーザデータ記憶手段に記憶されるユーザデータを、前記第１の外部記憶メディア・アクセス手段により前記第１の外部記憶メディアに書き込ませると共に、前記２重化設定情報記憶手段の２重化設定情報に基づいて２重化を行うか否かを判定し、２重化を行う場合には、前記待機系コントローラに対する外部記憶メディア書込み要求を発行するデータバックアップ手段と、
該データバックアップ手段により該待機系コントローラに対する外部記憶メディア書込み要求が発行された場合、前記待機系コントローラに対して前記システムバスを介して、前記外部記憶メディア又は前記ユーザデータ記憶手段に記憶された前記ユーザデータを含むメッセージを送信するメッセージ送信手段と、
を有することを特徴とする稼動系コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、稼動系コントローラと待機系コントローラを有する２重化コントローラシステムに関する。
【背景技術】
【０００２】
プログラマブルコントローラ・システムでは、信頼性を向上させるために、ＣＰＵモジュール（プログラマブルコントローラ本体）を待機冗長の２重化構成にする場合がある。
この様な２重化コントローラシステムは、例えば、２つのＣＰＵモジュール（コントローラ）を１組とし、一方を稼動系、他方を待機系とし、稼動系ＣＰＵモジュールを待機系ＣＰＵモジュールが監視して、稼動系ＣＰＵモジュールに障害等の切替え要因が生じたならば待機系ＣＰＵモジュールが稼動系に切り替る構成である。また、稼動系ＣＰＵモジュール（稼動系コントローラ）は、例えば、複数の定周期プログラムを実行する。
【０００３】
また、上記稼動系／待機系の切替えが生じたときにユーザデータ（制御データ等）の整合性を持たせる為、等値化バスを介して稼動系ＣＰＵモジュールから待機系ＣＰＵモジュールにユーザデータ（制御データ等）を送信して等値化処理を行っている。
【０００４】
この様な従来の２重化コントローラシステムについては、例えば特許文献１，２に記載されている。
近年では、上記稼動系／待機系のＣＰＵモジュールに外部記憶メディアの装着機能を備える構成が一般的になっている。すなわち、外部記憶メディアは、従来はコントローラに装着されるものではなかったが、最近では、実装されるようになった。外部記憶メディアは例えばメモリカード等である。そして、この外部記憶メディアに、ユーザデータ（制御データ等；特許文献２に記載のローカル変数、グローバル変数等）を、データバックアップの為に記憶している。
【０００５】
図６に、上記ＣＰＵモジュールに外部記憶メディアの装着機能を備える構成の２重化コントローラシステム全体の概略構成を示す。また、図７、図８に、図６に示す構成におけるＣＰＵモジュールの詳細構成、及びデータフローを示す。
【０００６】
尚、図６、図７、図８に示す構成は、特許文献１，２に記載の２重化コントローラシステムの構成をベースにして、上述したＣＰＵモジュールに外部記憶メディアの装着機能を備える構成を示すものである。
【０００７】
図６に示す２重化コントローラシステムは、ＣＰＵモジュール１０１−１、ＣＰＵモジュール１０１−２、及び不図示の各制御対象機器とのデータ入出力を行う複数のＩ／Ｏユニット１０２より成るＩ／Ｏ群から構成されている。尚、ここでは、ＣＰＵモジュール１０１−１が稼動系、ＣＰＵモジュール１０１−２がその待機系となっている場合を例にして説明する。
【０００８】
稼動系となっているＣＰＵモジュール１０１−１は、その内部に格納された複数の定周期プログラム（図示の例では定周期プログラムＡ，Ｂの２つのみ示すが、勿論、３つ以上あってもよい）を実行することで、各Ｉ／Ｏユニット１０２に対して制御データを出力して（又は各Ｉ／Ｏユニットからセンサ計測値等を読み出して）、各制御対象機器を制御する。このデータ送受信は、システムバス１０３を介して行う。また、ＣＰＵモジュール１０１−１とＣＰＵモジュール１０１−２との間の通信（メッセージ通信）も、システムバス１０３を介して行われる。但し、上記の通り、等値化処理の為のデータ送受信は、等値
化バス１０４を介して行われる。
【０００９】
そして、稼動系のＣＰＵモジュール１０１−１、待機系のＣＰＵモジュール１０１−２には、外部記憶メディア装着の為のスロット等が設けられ、図示の通り、外部記憶メディア１０５ａ、１０５ｂが装着される。
【００１０】
次に、以下、図７、図８を参照して、ＣＰＵモジュールの構成、動作について説明する。
ＣＰＵモジュール１０１−１、１０１−２は、プログラマブルコントローラ本体であるが、ここではＩ／Ｏユニット１０２に対する制御処理に係る動作は省略する。
【００１１】
図７、図８に示す構成は同じであり、ここでは図７を参照して説明すると、図７において、ＣＰＵモジュール１０１−１は、プログラムＲＡＭ１１１、データＲＡＭ１１２、等値化バス制御部１１３、受信バッファ用ＲＡＭ１１４、マイクロプロセッサ１１５、及びシステムバス制御部１１６等を有する。
【００１２】
システムバス制御部１１６は、システムバス１０３に接続され、マイクロプロセッサ１１５は、システムバス制御部１１６によりシステムバス１０３を介して、待機系のＣＰＵモジュール１０１−２に対するメッセージ通信処理を行う。勿論、各Ｉ／Ｏユニット１０２とのデータ送受信処理も行われる。
【００１３】
プログラムＲＡＭ１１１には、ユーザプログラム１１１ａが格納される。ユーザプログラム１１１ａとは、例えば上記定周期プログラムや、等値化処理を実現させる為のアプリケーションプログラム等であり、各ユーザ側のプログラマ等が任意に作成して格納する。プログラムＲＡＭ１１１には、更に、予め当該プログラマブルコントローラのメーカ側で作成・格納してあるシステムプログラムである各種システムファンクションブロック１１１ｂも格納されている。各ユーザ側のプログラマ等は、この各種システムファンクションブロック１１１ｂの機能・処理を利用することで、ユーザプログラム１１１ａの作成の手間を軽減することができる。すなわち、マイクロプロセッサ１１５がユーザプログラム１１１ａを実行中にシステムファンクションブロック１１１ｂをコールする場合もある。
【００１４】
よく知られているように、ファンクションブロックダイアグラム（ＦＢＤ）はプログラマブルコントローラでよく用いられるプログラム言語の一つであり、システムファンクションブロック１１１ｂは、この様なＦＢＤ言語を用いて作成されている。但し、これは一例であり、必ずしもファンクションブロックで作成する必要はない。そして、ここでは特に、システムファンクションブロック１１１ｂは、（図８で説明する）外部記憶メディア１０５ａに対する制御データ等の書込み／読出し処理を、マイクロプロセッサ１１５により実行させるプログラムであるものとする。
【００１５】
データＲＡＭ１１２は、ユーザデータ領域１１２ａを有し、等値化データ転送情報１１２ｂを格納する。尚、ここでは、ユーザデータ領域１１２ａに格納されているデータをユーザデータと呼ぶものとしており、ユーザデータ領域１１２ａには、上記制御データ等（特許文献２等に記載のローカル変数と、グローバル変数等）が格納されている。等値化データ転送情報１１２ｂは、各ローカル変数とグローバル変数のユーザデータ領域１１２ａにおける格納位置を示す情報（特許文献２におけるマッピング情報）である。
【００１６】
等値化バス制御部１１３は、主に等値化バス１０４を介して等値化を行う為のデータ転送処理専用の構成であり、等値化すべきデータ（制御データ等）を、待機側の等値化バス制御部１２３と連動して、待機側の受信バッファ用ＲＡＭ１２４に格納させる機能を有する。
【００１７】
マイクロプロセッサ１１５は、ＣＰＵモジュール１０１−１全体を制御する中央処理装置（ＣＰＵチップ等）であり、例えば、上記ユーザプログラム１１１ａを読出し・実行することで、各定周期プログラムを実行すると共に実行毎に等値化処理を実行し、あるいは外部記憶メディア１０５ａへのデータバックアップ処理等も実行する。
【００１８】
また、待機系のＣＰＵモジュール１０１−２は、プログラムＲＡＭ１２１、データＲＡＭ１２２、等値化バス制御部１２３、受信バッファ用ＲＡＭ１２４、マイクロプロセッサ１２５、及びシステムバス制御部１２６等を有する。この構成自体は、稼動系のＣＰＵモジュール１０１−１と同じである。但し、上記等値化処理の際には、マイクロプロセッサ１２５は、上記の様に受信バッファ用ＲＡＭ１２４に格納された等値化対象データ（制御データ等）を、データＲＡＭ１２２のユーザデータ領域１２２ａへ転送・格納する処理を実行する。その際、特許文献２に記載の様に等値化データ転送情報１２２ａを参照する。
【００１９】
図７には、上記等値化処理における等値化対象データ転送の様子を示す。特許文献１，２に記載の通り、等値化処理によって、稼動系ＣＰＵモジュール、待機系ＣＰＵモジュールのデータＲＡＭ上の制御データの同一性を確保できる。つまり、ユーザデータ領域１１２ａに記憶されているデータ（制御データ等）と、ユーザデータ領域１２２ａに記憶されているデータとが同一の状態にでき、稼動／待機切り替えが行われても問題なく制御続行できる。
【００２０】
更に、稼動系のＣＰＵモジュール１０１−１においては、図８に示すように、ユーザデータ領域１１２ａに記憶されているデータ（制御データ等）を外部記憶メディア１０５ａにコピーする処理、または外部記憶メディア１０５ａにバックアップしたデータをユーザデータ領域１１２ａにコピーする処理を、マイクロプロセッサ１１５が実行する。これは、上記の通り、ユーザプログラム１１１ａを実行中にシステムファンクションブロック１１１ｂをコールすることにより、システムファンクションブロック１１１ｂが、ユーザデータ領域１１２ａ上のデータの外部記憶メディア１０５ａへの書込み処理要求（あるいは逆に読出し処理要求）を、不図示の外部記憶メディア書込み処理部に対して発行する。この外部記憶メディア書込み処理部は、マイクロプロセッサ１１５によって実現される各種処理機能部（例えば上記定周期処理、等値化処理等を実行する不図示の各種処理機能部）のうちの１つであり、外部記憶メディアに対するアクセス処理（データ書込み／読出し処理）を実行する処理機能部である。これにより、外部記憶メディア書込み処理部によって、ユーザデータ領域１１２ａ上のデータを外部記憶メディア１０５ａに書き込む、あるいは、外部記憶メディア１０５ａから読み出したデータをユーザデータ領域１１２ａに格納する処理が、マイクロプロセッサ１１５（外部記憶メディア書込み処理部）により実行される。
【特許文献１】特開２００３−２９６１３３号公報
【特許文献２】特開２００５−９２５２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、上述したように、稼動系ＣＰＵモジュール１０１−１が、ユーザプログラムによりシステムファンクションブロックをコールし（尚、上記コールするタイミング（外部記憶メディアへ書込みを行う時間間隔）は、ユーザプログラムを作成するユーザが任意に決めてよい）、外部記憶メディア１０５ａへ書込みを行うと、稼動系ＣＰＵモジュール１０１−１と待機系ＣＰＵモジュール１０１−２とで、その外部記憶メディア１０５ａ、１０５ｂのデータ内容が同一でなくなる。この状態で、稼動系ＣＰＵモジュールの故障等により、稼動／待機切替えが発生すると、以後、新たに稼動系となったＣＰＵモジュール１０１−２は、外部記憶メディア１０５ｂの格納データを利用すると旧いデータにて
運用されてしまうことになり問題となる。
【００２２】
この様な問題に対して、例えばユーザプログラム１２１ａを作成するユーザが、この様な問題に対処できるようなユーザプログラム１２１ａを作成することが考えられる。例えば、稼動／待機の切り替えが行われた直後に、自己のユーザデータ領域１２２ａに格納されたデータと、自己の外部記憶メディア１０５ｂに格納されたデータとを比較チェックして、例えば同一ではない場合には、自己のユーザデータ領域１２２ａに格納された制御データを、自己の外部記憶メディア１０５ｂに書き込む処理が行われるように、ユーザプログラム１２１ａを作成することが考えられる。
【００２３】
しかしながら、この様な方法では、ユーザに余計な手間を掛けさせることになる。
また、稼動／待機の切り替えは頻繁に行われるようなものではないので、その間ずっと外部記憶メディア１０５ａ、１０５ｂのデータ内容が同一ではない状態となっており、これは望ましくない状況である。
【００２４】
更に、等値化処理が正常に実行されなかったり、何等かの原因でユーザデータ領域１２２ａの格納データが壊れていた場合には、上記処理では問題がある。
本発明の課題は、複数の定周期プログラムを実行する稼動系コントローラと、待機系コントローラと各Ｉ／Ｏユニットとがシステムバスに接続された２重化コントローラシステムであって、稼動系コントローラ及び待機系コントローラに外部記憶メディアが接続される構成において、ユーザに余計な手間を掛けさせることなく、稼動系コントローラと待機系コントローラの外部記憶メディア内データの同一性をほぼ保証できるようにする２重化コントローラシステム等を提供することである。
【課題を解決するための手段】
【００２５】
本発明の２重化コントローラシステムは、複数の定周期プログラムを実行する稼動系コントローラと、待機系コントローラと、各Ｉ／Ｏユニットとがシステムバスに接続された２重化コントローラシステムであって、前記稼動系コントローラは、自己に接続された第１の外部記憶メディアに対するデータ書込み／読出し処理を行う第１の外部記憶メディア・アクセス手段と、予め設定される２重化設定情報を記憶する２重化設定情報記憶手段と、前記各Ｉ／Ｏユニットの制御に係るユーザデータを記憶するユーザデータ記憶手段と、前記ユーザデータ記憶手段に記憶されるユーザデータを更新するユーザデータ更新手段と、前記ユーザデータ記憶手段に記憶されるユーザデータを、前記第１の外部記憶メディア・アクセス手段により前記第１の外部記憶メディアに書き込ませると共に、前記２重化設定情報記憶手段の２重化設定情報に基づいて２重化を行うか否かを判定し、２重化を行う場合には、前記待機系コントローラに対する外部記憶メディア書込み要求を発行するデータバックアップ手段と、該データバックアップ手段により該待機系コントローラに対する外部記憶メディア書込み要求が発行された場合、前記待機系コントローラに対して前記システムバスを介して、前記外部記憶メディア又は前記ユーザデータ記憶手段に記憶された前記ユーザデータを含むメッセージを送信するメッセージ送信手段とを有し、前記待機系コントローラは、自己に接続された第２の外部記憶メディアに対するデータ書込み／読出し処理を行う第２の外部記憶メディア・アクセス手段と、前記メッセージを受信すると、該メッセージに含まれる前記ユーザデータを、前記第２の外部記憶メディア・アクセス手段により前記第２の外部記憶メディアに書き込ませる第２の外部記憶メディア・管理手段とを有する。
【００２６】
上記構成の２重化コントローラシステムでは、ユーザは予め２重化設定情報を設定するだけでよく、その後はシステムが自動的に待機側の第２の外部記憶メディアにもユーザデータをバックアップさせることができる。
【発明の効果】
【００２７】
本発明の２重化コントローラシステム等によれば、複数の定周期プログラムを実行する稼動系コントローラと、待機系コントローラと各Ｉ／Ｏユニットとがシステムバスに接続された２重化コントローラシステムであって、稼動系コントローラ及び待機系コントローラに外部記憶メディアが接続される構成において、ユーザに余計な手間を掛けさせることなく、稼動系ＣＰＵと待機系ＣＰＵの外部記憶メディア内データの同一性をほぼ保証できるようになる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本発明の実施の形態について説明する。
本例の２重化コントローラシステムの全体構成は、基本的には上記図６に示す構成と略同様である。すなわち、図１に示すように、本例の２重化コントローラシステム全体構成は、稼動系のＣＰＵモジュール１０、待機系のＣＰＵモジュール２０、及び不図示の各制御対象機器とのデータ入出力を行う複数のＩ／Ｏユニット２より成り、これらはシステムバス１に接続されており、相互にデータ送受信可能となっている。また、等値化処理は、ＣＰＵモジュール１０−ＣＰＵモジュール２０間に設けられた等値化バス５を介して行われる。また、ＣＰＵモジュール１０、２０は、図示の外部記憶メディア４ａ、４ｂを装着可能なスロット等を有しており、外部記憶メディア４ａ、４ｂに対するデータ書込み／読み出し処理を行う処理機能部（上記従来の外部記憶メディア書込み処理部に相当）を有している。
【００２９】
ここでは、図６に示す従来とは異なる点のみ説明するものとする。
従来より、ＣＰＵモジュール１０、２０に支援ツール３（パソコン等）を接続して、この支援ツール３から新たなアプリケーション（定周期プログラム等）をダウンロードしたり、支援ツール３により運用状況をモニタリングすること等が行われている。本例では、更に、担当者等が支援ツール３を操作して任意の２重化設定を行い、この２重化設定情報を各ＣＰＵモジュール１０、２０にダウンロードして記憶させることが行われる。２重化設定情報に関しては後に説明する。この様に、各ユーザは、２重化設定を行うだけで済み、従来のような手間が掛かることはない。
【００３０】
図２に、本例の２重化コントローラシステムにおける稼動系／待機系のＣＰＵモジュールの構成例を示す。
図１に示すように、構成自体は、上記図７等に示す従来構成と略同様である。すなわち、稼動系のＣＰＵモジュール１０は、プログラムＲＡＭ１１、データＲＡＭ１２、等値化バス制御部１３、受信バッファ用ＲＡＭ１４、マイクロプロセッサ１５、及びシステムバス制御部１６等を有する。
【００３１】
データＲＡＭ１２は、上記従来と同様、ユーザデータ領域１２ａを有し、等値化データ転送情報１２ｂを格納する。ユーザデータ領域１２ａには上記ユーザデータ（制御データ等）が格納される。この制御データは、各Ｉ／Ｏユニット２に対する制御データであり、上記従来で説明したように、各定周期プログラム毎に対応するローカル変数や、共通のグローバル変数等であり、これらは例えば各定周期プログラム実行に伴って更新される。
【００３２】
プログラムＲＡＭ１１にも、上記従来と同様、ユーザプログラム１１ａ（定周期プログラムや、等値化処理、外部記憶メディア書込み処理等を、マイクロプロセッサ１５により実行させる為のプログラム等）が格納される。更に、上記従来で説明したシステムプログラムであるシステムファンクションブロック１１ｂも格納される。システムファンクションブロック１１ｂは、上記従来のシステムファンクションブロック１１１ｂと同様、ユーザプログラム１１ａ実行中にコールされることで起動して、その処理を実行する。但し、後述するように、このシステムファンクションブロック１１ｂによる処理が従来とは異な
る。
【００３３】
等値化バス制御部１３、受信バッファ用ＲＡＭ１４、マイクロプロセッサ１５、及びシステムバス制御部１６等についても、構成自体は上記図７等に示す従来の構成と略同様である。そして、等値化バス制御部１３等によって従来と同様に等値化処理を行っている。等値化処理によってユーザデータ領域１２ａのデータとユーザデータ領域２２ａのデータとが同じとなっている。
【００３４】
上記ＣＰＵモジュール１０が、従来構成と異なる点は、上記図１で説明した２重化設定情報が設定されている点、及び上記システムファンクションブロック１１ｂの処理機能である。尚、待機系のＣＰＵモジュール２０の構成は、ＣＰＵモジュール１０と略同様であり、プログラムＲＡＭ２１、データＲＡＭ２２、等値化バス制御部２３、受信バッファ用ＲＡＭ２４、マイクロプロセッサ２５、及びシステムバス制御部２６等を有する
以下、従来と異なる点のみ説明する。
【００３５】
図３に、上記システムファンクションブロック１１ｂによる処理フローチャート図を示す。
システムファンクションブロック１１ｂは、まず上記従来のシステムファンクションブロック１１１ｂと同様、従来で説明した不図示の外部記憶メディア書込み処理部に対して、ユーザデータの外部記憶メディアへの書込み処理要求を発行する（ステップＳ１１）。これにより、外部記憶メディア書込み処理部は、ユーザデータ領域１２ａに格納されている制御データ等を読み出して、これを外部記憶メディア４ａに書き込む処理を実行する。
【００３６】
続いて、上記予め設定されている２重化設定情報を読出す（ステップＳ１２）。２重化設定情報は、例えばプログラムＲＡＭ１１内の所定の記憶領域（例えばシステムファンクションブロック１１ｂが使用する記憶領域等）に格納されている。２重化設定情報は、例えば１ビットの情報であり、 ‘１’は２重化設定有り、‘０’は２重化設定無しを意味する。つまり、ユーザが後述するステップＳ１４の処理を、任意に行わせるか否かを指定している。
【００３７】
そして、２重化設定ありの場合には（ステップＳ１３，ＹＥＳ）、待機系ＣＰＵモジュール２０に対する外部記憶メディア書き込み要求を発行する（ステップＳ１４）。これにより、マイクロプロセッサ１５は、外部記憶メディア４ａ又はユーザデータ領域１２ａに格納されている制御データ等を読み出して、この制御データ等を含む待機系ＣＰＵモジュール２０宛のメッセージを作成し、このメッセージを、システムバス制御部１６に備えられるメッセージルーティング機能により、システムバス１を介して、待機系ＣＰＵモジュール２０へ送信する。このメッセージを受信した待機系ＣＰＵモジュール２０は、後述する図５の処理により、自己の外部記憶メディア４ｂに上記制御データ等を書き込む。これにより、外部記憶メディア４ａと外部記憶メディア４ｂとで、同一のデータが格納されることになり、稼動／待機切替えが発生した場合でも、新たに稼動系となったＣＰＵモジュール２０は問題なく制御処理を実行できる。
【００３８】
図４に、上記メッセージの構造例を示す。
図示のメッセージ３０は、システムバス１上の通信の為のメッセージヘッダ３１、各種コマンドを選択させるコマンドヘッダ３２、及びデータ部３３とから成る。メッセージヘッダ３１は、フレームコード４１、送信元アドレス４２、受信先アドレス４３等から成る。コマンドヘッダ３２は、コマンド４４、分割番号４５等から成り、ここではコマンド４４は外部記憶メディア書き込み要求となる。データ部３３は、書込み先４６、書込みデータ４７等であり、ここでは書込み先４６は外部記憶メディア４ｂ、書込みデータ４７は上記外部記憶メディア４ａ等から読み出した制御データ等である。
【００３９】
図５に、待機系ＣＰＵモジュール２０における上記メッセージの受信処理を示す。
ここで、待機系ＣＰＵモジュール２０のマイクロプロセッサ２５は、不図示の各種機能部の機能処理を実行する。この各種機能部として、例えば、メッセージ受信処理部、コマンド処理部、外部記憶メディア書込み処理部等がある。尚、待機系ＣＰＵモジュール２０にもシステムファンクションブロック２１ｂが格納されているが、これは待機系であるときには機能していない。
【００４０】
上記メッセージは、システムバス制御部２６により受信され、その不図示の受信バッファに格納される。
まず、上記メッセージ受信処理部は、この受信バッファからメッセージを取り出して（ステップＳ２１）、上記コマンド処理部へ受信通知する（その際、メッセージを渡す）（ステップＳ２２）。
【００４１】
この通知を受けたコマンド処理部は、コマンドヘッダ３２を参照して（ステップＳ２３）、コマンド解析により各処理部へ通知する。ここでは特にコマンド４４が上記外部記憶メディア書き込み要求である場合には（ステップＳ２４，ＹＥＳ）、外部記憶メディア書込み処理部へ通知する（ステップＳ２５）。
【００４２】
この通知を受けた外部記憶メディア書込み処理部は、データ部３３を参照して、書込み先４６（つまり外部記憶メディア４ｂ）に対して、書込みデータ４７を書き込む処理を実行する（ステップＳ２６，Ｓ２７）。
【００４３】
以上説明した図３及び図５の処理によって、ユーザに余計な手間を掛けさせることなく（単純な設定を行うだけで）、稼動系ＣＰＵモジュール１０と待機系ＣＰＵモジュール２０の外部記憶メディア内データの同一性を保証することが可能となる。更に、等値化処理が正常に行われていない場合や、ユーザデータ領域２２ａの格納データが何等かの原因で壊れたり消去された場合にも、何等問題が生じることはない。
【００４４】
尚、上記の例に限らず、例えばメッセージ３０に書込みデータ４７は格納せずに、待機側でメッセージ３０を受信した場合に、自己のユーザデータ領域２２ａに格納されたデータを読み出して、これを外部記憶メディア４ｂに書き込むようにしてもよい。但し、等値化処理が正常に行われていない可能性を考慮する場合には、上記の例の方が望ましい。
【００４５】
また、２重化設定情報は、上述した１ビットの情報に限らない。例えば、通常、Ｉ／Ｏ制御処理及びこれに伴うユーザデータ更新処理や等値化処理の速度に比べ、外部記憶メディアへのアクセス処理は時間が掛かるものである。この為、等値化処理が定周期プログラム実行毎に行われるのに対して、外部記憶メディア４ａへのユーザデータバックアップ処理の頻度は低いものとなるように設定される。これに加えて本例では待機側へのメッセージ送信処理も行うので、処理負荷が増大する。よって、２重化設定情報として、例えば、「外部記憶メディア４ａへのユーザデータバックアップ処理をｎ回行う」等とすることで、ｎ回行われる毎にステップＳ１３の判定がＹＥＳとなるようにしてもよい。何れにしても、２重化設定情報は、ユーザの手間が掛かることなく、ある程度所望の処理を指定できるようにするものである。
【００４６】
以上の説明において、処理実行に係る説明における「システムファンクションブロック１１ｂは」とは、「システムファンクションブロック１１ｂのプログラムを実行するマイクロプロセッサ１５は」を意味する。他も略同様である。
【図面の簡単な説明】
【００４７】
【図１】本例の２重化コントローラシステムの全体構成図である。
【図２】図１に示す稼動系／待機系のＣＰＵモジュールの構成例である。
【図３】システムファンクションブロックによる処理を示すフローチャート図である。
【図４】メッセージの構造例を示す図である。
【図５】待機系ＣＰＵモジュールにおけるメッセージの受信処理を示す図である。
【図６】従来の２重化コントローラシステム全体の概略構成図である。
【図７】図６のＣＰＵモジュールの構成、動作を示す図（その１）である。
【図８】図６のＣＰＵモジュールの構成、動作を示す図（その２）である。
【符号の説明】
【００４８】
１  システムバス
２  Ｉ／Ｏユニット
３  支援ツール
４ａ  外部記憶メディア（稼動側）
４ｂ  外部記憶メディア（待機側）
５  等値化バス
１０  （稼動系）ＣＰＵモジュール
１１  プログラムＲＡＭ
１１ａ  ユーザプログラム
１１ｂ  システムファンクションブロック
１２  データＲＡＭ
１２ａ  ユーザデータ領域
１２ｂ  等値化データ転送情報
１３  等値化バス制御部
１４  受信バッファ用ＲＡＭ
１５  マイクロプロセッサ
１６  システムバス制御部
２０  （待機系）ＣＰＵモジュール
２１  プログラムＲＡＭ
２１ａ  ユーザプログラム
２１ｂ  システムファンクションブロック
２２  データＲＡＭ
２２ａ  ユーザデータ領域
２２ｂ  等値化データ転送情報
２３  等値化バス制御部
２４  受信バッファ用ＲＡＭ
２５  マイクロプロセッサ
２６  システムバス制御部
３０  メッセージ
３１  メッセージヘッダ
３２  コマンドヘッダ
３３  データ部
４１  フレームコード
４２  送信元アドレス
４３  受信先アドレス
４４  コマンド
４５  分割番号
４６  書込み先
４７  書込みデータ
【図１】
2008226111.tif 000003
【図２】
2008226111.tif 000004
【図３】
2008226111.tif 000005
【図４】
2008226111.tif 000006
【図５】
2008226111.tif 000007
【図６】
2008226111.tif 000008
【図７】
2008226111.tif 000009
【図８】
2008226111.tif 000010