(57)【特許請求の範囲】
【請求項１】
データが読み書きされる揮発性メモリと、電気的に書き換え可能なバックアップ用不揮発性メモリと、電源のオフを検知する検知手段と、前記検知手段が電源のオフを検知した時に前記揮発性メモリのデータを読み出して前記不揮発性メモリの記憶領域に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時に前記不揮発性メモリの記憶領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行うデータ復帰手段と、前記データ復帰動作の直後に前記不揮発性メモリの記憶領域のデータを消去するデータ消去手段とを備え、
前記不揮発性メモリは、前記検知手段が電源のオフを検知した時に前記バックアップ手段によって前記揮発性メモリのデータを書き込まれ、且つ前記データ復帰動作の直後に前記データ消去手段によってデータを消去される書き込み専用領域と、電源のオン時に前記データ復帰手段によってデータを読み出される読み出し専用領域との少なくとも２個の記憶領域を有しており、前記バックアップ動作が正常に行われたか否かを判定する判定手段と、前記判定手段の判定結果が正常であれば、前記データ復帰動作の前に前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常でなければ、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を現状に維持する領域入れ替え手段とを備える
ことを特徴とする記憶装置。
【請求項２】
前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有することを特徴とする請求項１記載の記憶装置。
【請求項３】
前記不揮発性メモリは、前記書き込み専用領域及び前記読み出し専用領域を含む複数の記憶領域と、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域とを有しており、前記データ消去手段が書き込み専用領域のデータを消去できない時、及び前記判定手段の判定結果が正常でない時に前記管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域を書き込み専用領域にする領域変更手段とを備えることを特徴とする請求項１記載の記憶装置。
【請求項４】
電源のオフを検知すると、データが読み書きされる揮発性メモリのデータを読み出して、電気的に書き換え可能なバックアップ用不揮発性メモリの読み出し専用領域と書き込み専用領域との少なくとも２個の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、次に、電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行い、データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去することを特徴とする記憶装置のバックアップ方法。
【請求項５】
前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有することを特徴とする請求項４記載の記憶装置のバックアップ方法。
【請求項６】
電源のオフを検知すると、前記揮発性メモリのデータを読み出して、前記不揮発性メモリの複数の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、前記バックアップ動作が正常に行われていなければ、前記不揮発性メモリが有する、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更して、次に電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内の複数の記憶領域のうち読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを前記揮発性メモリに書き込むデータ復帰動作を行い、前記データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去し、前記データ消去手段が前記書き込み専用領域のデータを消去できない時には、前記不揮発性メモリの管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更してから、書き込み専用領域のデータを消去することを特徴とする請求項４記載の記憶装置のバックアップ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置、及び記憶装置のバックアップ方法に関するものである。
【０００２】
【従来の技術】
従来の記憶装置を用いた例として、演算制御処理を行うＣＰＵと、システムメモリたるＲＯＭと、データが読み書きされる揮発性メモリたるＲＡＭと、電気的に書き換え可能なバックアップ用不揮発性メモリたるＥＥＰＲＯＭと、動作電源のオフを検知する電源オフ検知手段とを備え、バックアップ電池を持たない従来のプログラマブルコントローラにおける電源オフ時のデータのバックアップ処理について、図１０，図１１（ａ），（ｂ）を用いて説明する。図１０はプログラマブルコントローラのＥＥＰＲＯＭ５の記憶領域とＲＡＭ６との関係を示しており、図１１（ａ），（ｂ）はデータのバックアップ処理のフローチャートを示している。
【０００３】
ＥＥＰＲＯＭ５は１個の記憶領域５１を有して、ＲＡＭ６の特定のアドレスのデータをバックアップするものであり、まず、プログラマブルコントローラの電源がオフからオンになると（ステップＳ１０１）、前回の電源のオフ時にＥＥＰＲＯＭ５の記憶領域５１に書き込んだデータを、記憶領域５１から読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行い（ステップＳ１０２）、処理を終了する（ステップＳ１０３）。
【０００４】
次に、プログラマブルコントローラの電源がオフになり、電源オフ検知手段が電源のオフを検知すると（ステップＳ１０４）、ＥＥＰＲＯＭ５の記憶領域５１のデータを消去してから（ステップＳ１０５）、ＲＡＭ６の特定のアドレスのデータを記憶領域５１に書き込むバックアップ動作を行い（ステップＳ１０６）、処理を終了する（ステップＳ１０７）。上記ステップＳ１０１〜Ｓ１０３、及びステップＳ１０４〜Ｓ１０７の処理を電源オン−電源オフ−電源オンの度に繰り返す。
【０００５】
ここで、ステップＳ１０５の消去時間は２０ｍｓｅｃ、ステップＳ１０６の書き込み時間は３０ｍｓｅｃかかるので、つまり、電源のオフ検知をしてから、このバックアップ動作が終了するまでの処理は、合計で５０ｍｓｅｃかかることになり、電源のオフを検知してから実際に電源がオフするまでの時間が６０ｍｓｅｃの場合は、記憶領域５１へのデータの書き込みを正常に行うことができるが、電源のオフを検知してから実際に電源がオフするまでの時間が４０ｍｓｅｃの場合は、データの消去を２０ｍｓｅｃ、書き込みを２０ｍｓｅｃ実行したところで電源がオフになり、結果としてデータをＥＥＰＲＯＭ５に完全に記憶させることができない。
【０００６】
【発明が解決しようとする課題】
前記従来の技術のように、電源オフを検知した後に、ＲＡＭのデータを、電気的に書き換え可能な不揮発性メモリ（ＥＥＰＲＯＭ、フラッシュＲＯＭ）に記憶させようとした場合、電源のオフを検知してから実際に電源がオフするまでの時間には、電源容量によっても異なるが、制限があり、特にセクタを消去してから書き込みを行うタイプのメモリデバイスは、消去、または書き込みの途中で電源がオフになって、データを完全に記憶させることができないことがあった。また、電気的に書き換え可能な不揮発性メモリ内には、記憶領域は１個しか存在しておらず、その記憶領域に対して電源をオンからオフにする度に消去、書き込みを行うため、記憶領域の寿命が短くなるという問題もあった。
【０００７】
本発明は、上記事由に鑑みてなされたものであり、その目的は、不揮発性メモリの記憶領域の寿命を長くした記憶装置、及び記憶装置のバックアップ方法を提供することにある。
【０００８】
【課題を解決するための手段】
請求項１の発明は、データが読み書きされる揮発性メモリと、電気的に書き換え可能なバックアップ用不揮発性メモリと、電源のオフを検知する検知手段と、前記検知手段が電源のオフを検知した時に前記揮発性メモリのデータを読み出して前記不揮発性メモリの記憶領域に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時に前記不揮発性メモリの記憶領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行うデータ復帰手段と、前記データ復帰動作の直後に前記不揮発性メモリの記憶領域のデータを消去するデータ消去手段とを備え、前記不揮発性メモリは、前記検知手段が電源のオフを検知した時に前記バックアップ手段によって前記揮発性メモリのデータを書き込まれ、且つ前記データ復帰動作の直後に前記データ消去手段によってデータを消去される書き込み専用領域と、電源のオン時に前記データ復帰手段によってデータを読み出される読み出し専用領域との少なくとも２個の記憶領域を有しており、前記バックアップ動作が正常に行われたか否かを判定する判定手段と、前記判定手段の判定結果が正常であれば、前記データ復帰動作の前に前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常でなければ、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を現状に維持する領域入れ替え手段とを備えることを特徴とする。
【０００９】
請求項２の発明は、請求項１において、前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有することを特徴とする。
【００１０】
請求項３の発明は、請求項１において、前記不揮発性メモリは、前記書き込み専用領域及び前記読み出し専用領域を含む複数の記憶領域と、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域とを有しており、前記データ消去手段が書き込み専用領域のデータを消去できない時、及び前記判定手段の判定結果が正常でない時に前記管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域を書き込み専用領域にする領域変更手段とを備えることを特徴とする。
【００１１】
請求項４の発明は、電源のオフを検知すると、データが読み書きされる揮発性メモリのデータを読み出して、電気的に書き換え可能なバックアップ用不揮発性メモリの読み出し専用領域と書き込み専用領域との少なくとも２個の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、次に、電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行い、データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去することを特徴とする。
【００１２】
請求項５の発明は、請求項４において、前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有することを特徴とする。
【００１３】
請求項６の発明は、請求項４において、電源のオフを検知すると、前記揮発性メモリのデータを読み出して、前記不揮発性メモリの複数の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、前記バックアップ動作が正常に行われていなければ、前記不揮発性メモリが有する、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更して、次に電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内の複数の記憶領域のうち読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを前記揮発性メモリに書き込むデータ復帰動作を行い、前記データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去し、前記データ消去手段が前記書き込み専用領域のデータを消去できない時には、前記不揮発性メモリの管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更してから、書き込み専用領域のデータを消去することを特徴とする。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
（参考例１）
本参考例では、プログラマブルコントローラの記憶装置、及びそのバックアップ方法について説明する。図１はバックアップ電池を持たない本参考例のプログラマブルコントローラの構成を示しており、図示するプログラマブルコントローラは電源回路１と、電源回路１が出力する電源のオフを検知する電源オフ検知回路２と、プログラマブルコントローラの演算制御処理を行うＣＰＵ３と、システムメモリたるＲＯＭ４と、電気的に書き換え可能なバックアップ用不揮発性メモリたるＥＥＰＲＯＭ５と、データが読み書きされる揮発性メモリたるＲＡＭ６と、入出力用Ｉ／Ｏ７と、外部の支援装置接続用のインタフェース８と、アドレス・データ・Ｉ／Ｏバス９とを備えており、ＣＰＵ３は演算制御処理を行うことで、電源オフ検知回路２が電源のオフを検知した時にＲＡＭ６のデータを読み出してＥＥＰＲＯＭ５に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時にＥＥＰＲＯＭ５に記憶したデータを読み出してＲＡＭ６に書き込むデータ復帰動作を行うデータ復帰手段と、データ復帰動作の直後にＥＥＰＲＯＭのデータを消去するデータ消去手段とを構成している。
【００１６】
次に、図２はプログラマブルコントローラのＥＥＰＲＯＭ５の記憶領域とＲＡＭ６との関係を示しており、ＥＥＰＲＯＭ５は１個の記憶領域５１を有してＲＡＭ６の特定のアドレスのデータをバックアップするものであり、図３（ａ），（ｂ）はデータのバックアップ処理のフローチャートを示している。以下、本参考例のバックアップ処理の動作について説明する。
【００１７】
まず、電源回路１が出力する電源がオフからオンになると（ステップＳ１）、前回の電源のオフ時にＥＥＰＲＯＭ５の記憶領域５１に書き込んだデータを、記憶領域５１から読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ２）後、記憶領域５１のデータを消去してから（ステップＳ３）、処理を終了する（ステップＳ４）。
【００１８】
次に、プログラマブルコントローラの電源がオフになり、電源オフ検知回路２が電源のオフを検知すると（ステップＳ５）、ＲＡＭ６の特定のアドレスのデータをＥＥＰＲＯＭ５の記憶領域５１に書き込むバックアップ動作を行い（ステップＳ６）、処理を終了する（ステップＳ７）。上記ステップＳ１〜Ｓ４、及びステップＳ５〜Ｓ７の処理を電源オン−電源オフ−電源オンの度に繰り返す。
【００１９】
したがって、従来の技術のように電源のオフを検知してＥＥＰＲＯＭ５の記録領域５１のデータを消去した後に、記憶領域５１へＲＡＭ６のデータの書き込みを行うと、消去または書き込みの途中で電源がオフになって、データを完全に記憶させることができないことがあったが、本参考例においては、消去（ステップＳ３）を電源オン時に行い、書き込み（ステップＳ６）を電源オフ検知時に行っているので、電源のオフを検知してから実際に電源がオフするまでの時間が４０ｍｓｅｃ、ステップＳ３の消去時間が２０ｍｓｅｃ、ステップＳ６の書き込み時間が３０ｍｓｅｃの場合でも、電源オフ検知時には、書き込みのみを行えばよく、電源のオフを検知してから実際に電源がオフするまでの時間が４０ｍｓｅｃに対して書き込み時間は３０ｍｓｅｃであるので、バックアップ電池を持っていなくても、電源のオフを検知してから実際に電源がオフするまでの間にＲＡＭ６のデータを、より確実、正常にＥＥＰＲＯＭ５の記憶領域５１に書き込むことができる。
【００２０】
（実施形態１）
本実施形態のプログラマブルコントローラの構成は、参考例１と同様に図１に示される。図４は本実施形態のプログラマブルコントローラのＥＥＰＲＯＭ５の記憶領域とＲＡＭ６との関係を示しており、ＥＥＰＲＯＭ５は２個の記憶領域５１，５２を有してＲＡＭ６の特定のアドレスのデータをバックアップするものである。なお、参考例１と同様の構成には同一の符号を付し、説明は省略する。
【００２１】
本実施形態のＥＥＰＲＯＭ５は、電源オフ検知回路２が電源回路１の電源オフを検知した時にＲＡＭ６の特定のアドレスのデータを書き込まれて、データ復帰動作の直後にデータを消去される書き込み専用領域と、電源のオン時にデータを読み出される読み出し専用領域との２個の記憶領域５１，５２を有しており、２個の記憶領域５１，５２は、一方が書き込み専用領域となり、他方が読み込み専用領域になる。
【００２２】
また、ＣＰＵ３は、演算制御処理を行うことで、参考例１と同様に、電源オフ検知回路２が電源のオフを検知した時にＲＡＭ６のデータを読み出してＥＥＰＲＯＭ５に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時にＥＥＰＲＯＭ５に記憶したデータを読み出してＲＡＭ６に書き込むデータ復帰動作を行うデータ復帰手段と、データ復帰動作の直後にＥＥＰＲＯＭのデータを消去するデータ消去手段とを構成し、さらに、バックアップ動作が正常に行われたか否かを判定し、正常であれば正常書き込みフラグを「１」に設定し、正常でなければ「０」に設定する判定手段、及び電源のオン時に正常書き込みフラグが「１」であれば、データ復帰動作の前にＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常書き込みフラグが「０」であれば、ＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を現状に維持する領域入れ替え手段をも構成している。
【００２３】
図５（ａ），（ｂ）はデータのバックアップ処理のフローチャートを示しており、以下、本実施形態のバックアップ処理の動作について説明する。まず、読み出し専用領域を記憶領域５１、書き込み専用領域を記憶領域５２とした状態で、電源回路１が出力する電源がオフからオンになると（ステップＳ１１）、正常書き込みフラグが「１」か「０」かを見る（ステップＳ１２）。
【００２４】
正常書き込みフラグが「１」であれば、すなわち前回のバックアップ動作が正常に行われておれば、読み出し専用領域を前回の書き込み専用領域である記憶領域５２とし（ステップＳ１３）、書き込み専用領域を前回の読み出し専用領域である記憶領域５１として（ステップＳ１４）、その後、正常書き込みフラグを「０」にリセットしておく（ステップＳ１５）。
【００２５】
次に、前回の電源のオフ時にＥＥＰＲＯＭ５の記憶領域５２に書き込んだデータを読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ１６）後、記憶領域５１のデータを消去してから（ステップＳ１７）、処理を終了する（ステップＳ１８）。
【００２６】
また、ステップＳ１２において、正常書き込みフラグが「０」であれば、すなわち前回のバックアップ動作が正常に行われていなければ、ＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を現状に維持したまま、ステップＳ１６のデータ復帰動作を行う。すなわち、前々回のバックアップ動作時にＥＥＰＲＯＭ５の記憶領域５１に書き込んだデータを読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ１６）後、記憶領域５２のデータを消去してから（ステップＳ１７）、処理を終了する（ステップＳ１８）。
【００２７】
次に、プログラマブルコントローラの電源がオフになり、電源オフ検知回路２が電源のオフを検知すると（ステップＳ１９）、ＲＡＭ６の特定のアドレスのデータをＥＥＰＲＯＭ５の書き込み専用領域に書き込むバックアップ動作を行い（ステップＳ２０）、そして、バックアップ動作が正常に行われたか否かを判定し、正常であれば正常書き込みフラグを「１」に設定し、正常でなければ「０」に設定し（ステップＳ２１）、処理を終了する（ステップＳ２２）。上記ステップＳ１１〜Ｓ１８、及びステップＳ１９〜Ｓ２２の処理を電源オン−電源オフ−電源オンの度に繰り返す。
【００２８】
このように本実施形態は、正常書き込みフラグの状態に応じて、ＥＥＰＲＯＭ５内に設けた２個の記憶領域５１，５２のうち一方を読み出し専用領域、他方を書き込み専用領域として用いており、例えば、電源のオフを検知してから実際に電源がオフするまでの時間が２０ｍｓｅｃ、ステップＳ１７の消去時間が２０ｍｓｅｃ、ステップＳ２０の書き込み時間が３０ｍｓｅｃの場合には、書き込みを２０ｍｓｅｃ実行したところで電源がオフになり、完全にデータを記憶させることができないが、データが正常に書き込めなかった場合でも、正常書き込みフラグを「０」に設定して、前回の書き込み時に記憶していたデータを失わないことを可能にしたものである。
【００２９】
また、参考例１と同様に、消去（ステップＳ１７）を電源オン時に行い、書き込み（ステップＳ２０）を電源オフ検知時に行っているので、バックアップ電池を持っていなくても、電源のオフを検知してから実際に電源がオフするまでの間にＲＡＭ６のデータを、より確実、正常にＥＥＰＲＯＭ５の記憶領域５１または５２に書き込むことができるようになった。
【００３０】
さらには、２個の記憶領域５１〜５２を設けて、書き込みが正常に行われたならば電源オン毎に書き込み専用領域と読み出し専用領域とを入れ替えていることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域の長寿命化を可能にしている。
【００３１】
（実施形態２）
本実施形態のプログラマブルコントローラの構成は、参考例１、実施形態１と同様に図１に示される。図６は本実施形態のプログラマブルコントローラのＥＥＰＲＯＭ５の記憶領域とＲＡＭ６との関係を示しており、ＥＥＰＲＯＭ５はｎ個の記憶領域５１〜５ｎを有してＲＡＭ６の特定のアドレスのデータをバックアップするものである。なお、参考例１、実施形態１と同様の構成には同一の符号を付し、説明は省略する。
【００３２】
本実施形態のＥＥＰＲＯＭ５は、ｎ個の記憶領域５１〜５ｎと、ｎ個の記憶領域５１〜５ｎの中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域５０とを有しており、ｎ個の記憶領域５１〜５ｎのうち、２つの記憶領域は、一方が書き込み専用領域となり、他方が読み込み専用領域となって、書き込み専用領域は、電源オフ検知回路２が電源回路１の電源オフを検知した時にＲＡＭ６の特定のアドレスのデータを書き込まれて、データ復帰動作の直後にデータを消去され、読み出し専用領域は、電源のオン時にデータを読み出される。
【００３３】
また、ＣＰＵ３は、演算制御処理を行うことで、実施形態１と同様に、電源オフ検知回路２が電源のオフを検知した時にＲＡＭ６のデータを読み出してＥＥＰＲＯＭ５の書き込み専用領域に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時にＥＥＰＲＯＭ５の読み出し専用領域に記憶したデータを読み出してＲＡＭ６に書き込むデータ復帰動作を行うデータ復帰手段と、データ復帰動作の直後にＥＥＰＲＯＭの読み出し専用領域のデータを消去するデータ消去手段と、バックアップ動作が正常に行われたか否かを判定し、正常であれば正常書き込みフラグを「１」に設定し、正常でなければ「０」に設定する判定手段と、電源のオン時に正常書き込みフラグが「１」であれば、データ復帰動作の前にＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常書き込みフラグが「０」であれば、ＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を現状に維持する領域入れ替え手段とを構成し、さらにデータ消去手段が書き込み専用領域のデータを消去できない時、及びバックアップ動作の終了時で判定手段の判定結果が正常でない時に管理領域５０の情報を用いてｎ個の記憶領域５１〜５ｎの中から選択した正常な記憶領域を書き込み専用領域にする領域変更手段をも構成している。
【００３４】
図７（ａ），（ｂ）はデータのバックアップ処理のフローチャートを示しており、以下、本実施形態のバックアップ処理の動作について説明する。まず、読み出し専用領域を記憶領域５１、書き込み専用領域を記憶領域５２とした状態で、電源回路１が出力する電源がオフからオンになると（ステップＳ３１）、動作モードが何モードかを確認する（ステップＳ３２）。非実行モードであれば処理を終了し（ステップＳ４５）、実行モードであれば、正常書き込みフラグが「１」か「０」かを見る（ステップＳ３３）。
【００３５】
正常書き込みフラグが「１」であれば、すなわち前回のバックアップ動作が正常に行われておれば、読み出し専用領域を前回の書き込み専用領域である記憶領域５２とし（ステップＳ３４）、書き込み専用領域を前回の読み出し専用領域である記憶領域５１として（ステップＳ３５）、その後、正常書き込みフラグを０にリセットしておく（ステップＳ３６）。
【００３６】
次に、前回の電源のオフ時にＥＥＰＲＯＭ５の記憶領域５２に書き込んだデータを読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ３７）後、記憶領域５１のデータを消去してから（ステップＳ３８）、データの消去が成功したか否かを判断する（ステップＳ３９）。消去が成功であれば、処理を終了し（ステップＳ４５）、消去が失敗であれば、ＥＥＰＲＯＭ５の管理領域５０に記録されている選択可能な領域情報によって、記憶領域５１〜５ｎのうち、まだ選択可能な領域があるか否かを判断し（ステップＳ４０）、選択可能な領域がなければ動作モードを非実行モードに切り替えて（ステップＳ４４）処理を終了する（ステップＳ４５）。
【００３７】
選択可能な領域があれば、その領域のうち、番号が最も小さい領域（本実施形態では記憶領域５３）を選択し（ステップＳ４１）、管理領域５０に記録されている選択可能な領域情報から今回選択した記憶領域を除外して、以降は選択できないようにした（ステップＳ４２）後に、今回選択した記憶領域のデータを消去して（ステップＳ４３）、処理を終了する（ステップＳ４５）。
【００３８】
また、ステップＳ３３において、正常書き込みフラグが「０」であれば、すなわち前回のバックアップ動作が正常に行われていなければ、ＥＥＰＲＯＭ５内で読み出し専用領域と書き込み専用領域との各領域を現状に維持したまま、ステップＳ３７のデータ復帰動作を行う。すなわち、前々回のバックアップ動作時にＥＥＰＲＯＭ５の記憶領域５１に書き込んだデータを読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ３７）後、記憶領域５２のデータを消去してから（ステップＳ３８）、データの消去が成功したか否かを判断し（ステップＳ３９）、以下、前記同様に処理を行う。
【００３９】
次に、プログラマブルコントローラの電源がオフになり、電源オフ検知回路２が電源のオフを検知すると（ステップＳ４６）、動作モードが何モードかを確認する（ステップＳ４７）。非実行モードであれば処理を終了し（ステップＳ５５）、実行モードであれば、ＲＡＭ６の特定のアドレスのデータをＥＥＰＲＯＭ５の書き込み専用領域に書き込むバックアップ動作を行い（ステップＳ４８）、そして、バックアップ動作が成功したか否かを判定し（ステップＳ４９）、成功であれば正常書き込みフラグを「１」に設定して（ステップＳ５３）、処理を終了する（ステップＳ２２）。
【００４０】
そして、バックアップ動作が成功でなければ正常書き込みフラグを「０」に設定したまま、ＥＥＰＲＯＭ５の管理領域５０に記録されている選択可能な領域情報によって、記憶領域５１〜５ｎのうち、まだ選択可能な領域があるか否かを判断し（ステップＳ５０）、選択可能な領域がなければ動作モードを非実行モードに切り替えて（ステップＳ５４）処理を終了する（ステップＳ５５）。
【００４１】
選択可能な領域があれば、その領域のうち、番号が最も小さい領域である記憶領域を選択し（ステップＳ５１）、管理領域５０に記録されている選択可能な領域情報から今回選択した記憶領域を除外して、以降は選択できないようにした（ステップＳ５２）後に、処理を終了する（ステップＳ５５）。そして、上記ステップＳ３１〜Ｓ４５、及びステップＳ４６〜Ｓ５５の処理を電源オン−電源オフ−電源オンの度に繰り返す。
【００４２】
以下、ＥＥＰＲＯＭ５が記憶領域５１〜５５を有するとして、本実施形態の主要な動作について具体的に説明する。読み出し専用領域として記憶領域５１が選択され、書き込み専用領域として記憶領域５２が選択されている状態で、記憶領域５２のデータの消去に失敗したとすると（ステップＳ３９）、次に記憶領域５３が書き込み専用領域として選択され（ステップＳ４１）、管理領域５０に記録されている選択可能な領域情報から今回選択した記憶領域５３を除外して、以降は選択できないようにした（ステップＳ４２）後に、記憶領域５３のデータが消去され（ステップＳ４３）、そして、電源オフ時には記憶領域５３にデータを書き込まれる（ステップＳ４８）。次の電源オン時には、読み出し専用領域だった記憶領域５１が書き込み専用領域となり（ステップＳ３４）、書き込み専用領域だった記憶領域５３が読み出し専用領域となる（ステップＳ３５）。この後、何か異常が発生するまで記憶領域５１，５３が選択されている状態で処理が行われる。
【００４３】
そして、記憶領域５１，５３が選択されている状態で書き込み専用領域となっている記憶領域５１へのデータの書き込みに失敗したとすると（ステップＳ４９）、新たに記憶領域５４が選択される（ステップＳ５１）。次の電源オン時には、前回の書き込み時に記憶領域５３に書き込んだデータを読み出し（ステップＳ３７）、記憶領域５４のデータを消去する（ステップＳ３８）。この後、何か異常が発生するまで記憶領域５３，５４が選択されている状態で処理が行われる。
【００４４】
次に、記憶領域５３，５４が選択されている状態で書き込み専用領域となっている記憶領域５３へのデータの書き込みに失敗したとすると（ステップＳ４９）、新たに記憶領域５５が選択される（ステップＳ５１）。次の電源オン時には、前回の書き込み時に記憶領域５４に書き込んだデータを読み出し（ステップＳ３７）、記憶領域５５のデータを消去する（ステップＳ３８）。この後、何か異常が発生するまで記憶領域５４，５５が選択されている状態で処理が行われる。
【００４５】
さらに、記憶領域５４，５５が選択されている状態で書き込み専用領域となっている記憶領域５４のデータの消去に失敗したとすると（ステップＳ３９）、選択可能な記憶領域がもう存在しないため（ステップＳ４０）、動作モードを非実行モードに切り替えて（ステップＳ４４）、処理を終了して、次回からこれらの処理は行われなくなる。
【００４６】
このように本実施形態は、ＥＥＰＲＯＭ５内の記憶領域が故障した場合、その故障した領域を２度と使用せずに正常な記憶領域を新たに選択して、その後の処理を行うようにしたので、確実にＲＡＭ６のデータを記憶して、データのバックアップをより確実、正常に行うことができる。
【００４７】
また、実施形態１と同様に、消去（ステップＳ３８）を電源オン時に行い、書き込み（ステップＳ４８）を電源オフ検知時に行っているので、バックアップ電池を持っていなくても、電源のオフを検知してから実際に電源がオフするまでの間にＲＡＭ６のデータをＥＥＰＲＯＭ５の記憶領域により確実に書き込むことができるようになり、さらに、例えば、電源のオフを検知してから実際に電源がオフするまでの時間が２０ｍｓｅｃ、ステップＳ３８の消去時間が２０ｍｓｅｃ、ステップＳ４８の書き込み時間が３０ｍｓｅｃの場合には、書き込みを２０ｍｓｅｃ実行したところで電源がオフになり、完全にデータを記憶させることができないが、データが正常に書き込めなかった場合でも、正常書き込みフラグを「０」に設定して、前回の書き込み時に記憶していたデータを失わないことを可能にしたものである。
【００４８】
さらには、複数の記憶領域５１〜５ｎを設けて、書き込みが正常に行われたならば、電源オン毎に書き込み専用領域と読み出し専用領域とを入れ替えていることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域の長寿命化を可能にしている。
【００４９】
（参考例２）
図１はバックアップ電池を持たない本参考例のプログラマブルコントローラの構成を示しており、図示するプログラマブルコントローラは電源回路１と、電源回路１が出力する電源のオフを検知する電源オフ検知回路２と、プログラマブルコントローラの演算制御処理を行うＣＰＵ３と、システムメモリたるＲＯＭ４と、データの読み書きを行うための読み書き領域を含む複数の記憶領域５１〜５ｎを有し、電気的に書き換え可能なバックアップ用不揮発性メモリたるＥＥＰＲＯＭ５と、データが読み書きされる揮発性メモリたるＲＡＭ６と、入出力用Ｉ／Ｏ７と、外部の支援装置接続用のインタフェース８と、アドレス・データ・Ｉ／Ｏバス９とを備えており、ＣＰＵ３は演算制御処理を行うことで、電源オフ検知回路２が電源１のオフを検知した時にＥＥＰＲＯＭ５の読み書き領域のデータを消去するデータ消去手段と、データ消去後、ＲＡＭのデータを読み出してＥＥＰＲＯＭ５の読み書き領域にデータを書き込むバックアップ動作を行うバックアップ手段と、電源１のオン時にＥＥＰＲＯＭ５の読み書き領域のデータを読み出してＲＡＭ６に書き込むデータ復帰動作を行うデータ復帰手段と、データ復帰動作を行う毎に異なる記憶領域を読み書き領域とする領域変更手段とを構成している。
【００５０】
次に、図８はプログラマブルコントローラのＥＥＰＲＯＭ５の記憶領域とＲＡＭ６との関係を示しており、ＥＥＰＲＯＭ５は複数の記憶領域５１〜５ｎを有してＲＡＭ６の特定のアドレスのデータをバックアップするものであり、図９（ａ），（ｂ）はデータのバックアップ処理のフローチャートを示している。以下、本参考例のバックアップ処理の動作について説明する。
【００５１】
まず、電源回路１が出力する電源がオフからオンになると（ステップＳ６１）、前回の電源のオフ時にＥＥＰＲＯＭ５の読み書き領域たる記憶領域５１に書き込んだデータを、記憶領域５１から読み出して、ＲＡＭ６の特定のアドレスに書き込むデータ復帰動作を行った（ステップＳ６２）後、記憶領域５１のアドレスに１を加えて次のアドレスに移して、以降の処理時には、この新しいアドレスに対応する記憶領域（ここでは記憶領域５２）を読み書き領域として用いることとする（ステップＳ６３）。
【００５２】
次に、このアドレスが最後尾のアドレス（ここでは記憶領域５ｎに対応する）より大きいか否かを判断し（ステップＳ６４）、大きくなければ処理を終了し（ステップＳ６６）、大きければ、先頭のアドレスに対応する記憶領域（ここでは記憶領域５１）を以降の処理時には読み書き領域として用いることとする（ステップＳ６５）。
【００５３】
次に、プログラマブルコントローラの電源がオフになり、電源オフ検知回路２が電源のオフを検知すると（ステップＳ６７）、記憶領域５２のデータを消去してから（ステップＳ６８）、ＲＡＭ６の特定のアドレスのデータをＥＥＰＲＯＭ５の記憶領域５２に書き込むバックアップ動作を行い（ステップＳ６９）、処理を終了する（ステップＳ７０）。そして、上記ステップＳ６１〜Ｓ６６、及びステップＳ６７〜Ｓ７０の処理を電源オン−電源オフ−電源オンの度に繰り返す。
【００５４】
本参考例においては、複数の記憶領域５１〜５ｎを設けて、電源オン毎に異なる記憶領域を読み書き領域として選択していることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域の長寿命化を可能にしており、この寿命は記憶領域の個数に比例して長くなる。
【００５５】
また、消去（ステップＳ６８）、書き込み（ステップＳ６９）を電源オフ検知時に行っているが、ステップＳ６８の消去時間が２０ｍｓｅｃ、ステップＳ６９の書き込み時間が３０ｍｓｅｃで、合計５０ｍｓｅｃかかる場合でも、本参考例では、電源のオフを検知してから実際に電源がオフするまでの時間が６０ｍｓｅｃなので、正常に書き込みを行うことができる。
【００５６】
なお、実施形態１，２においては、プログラマブルコントローラの記憶装置、及びそのバックアップ方法について説明したが、勿論、同様の構成を有する他の記憶装置、及びそのバックアップ方法についても本願発明を適用して、同様の効果を奏することは可能である。
【００５７】
【発明の効果】
請求項１の発明は、データが読み書きされる揮発性メモリと、電気的に書き換え可能なバックアップ用不揮発性メモリと、電源のオフを検知する検知手段と、前記検知手段が電源のオフを検知した時に前記揮発性メモリのデータを読み出して前記不揮発性メモリの記憶領域に書き込むバックアップ動作を行うバックアップ手段と、電源のオン時に前記不揮発性メモリの記憶領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行うデータ復帰手段と、前記データ復帰動作の直後に前記不揮発性メモリの記憶領域のデータを消去するデータ消去手段とを備え、前記不揮発性メモリは、前記検知手段が電源のオフを検知した時に前記バックアップ手段によって前記揮発性メモリのデータを書き込まれ、且つ前記データ復帰動作の直後に前記データ消去手段によってデータを消去される書き込み専用領域と、電源のオン時に前記データ復帰手段によってデータを読み出される読み出し専用領域との少なくとも２個の記憶領域を有しており、前記バックアップ動作が正常に行われたか否かを判定する判定手段と、前記判定手段の判定結果が正常であれば、前記データ復帰動作の前に前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常でなければ、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を現状に維持する領域入れ替え手段とを備えるので、消去を電源オン時に行い、書き込みを電源オフ検知時に行うことで、バックアップ電池を持っていなくても、電源のオフを検知してから実際に電源がオフするまでの間に、揮発性メモリのデータを、より確実、正常に、電気的に書き換え可能なバックアップ用不揮発性メモリの記憶領域に書き込むことができるという効果がある。さらに、不揮発性メモリ内に設けた２個の記憶領域を読み出し専用領域、書き込み専用領域として用いることで、データが正常に書き込めなかった場合でも、前回の書き込み時に記憶していたデータを失わないことを可能にするという効果がある。さらには、少なくとも２個の記憶領域を設けて、バックアップ動作が正常に行われたならば電源オン毎に書き込み専用領域と読み出し専用領域とを入れ替えていることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域の長寿命化を可能にしている。
【００５８】
請求項２の発明は、請求項１において、前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有するので、不揮発性メモリ内に設けた２個の記憶領域を読み出し専用領域、書き込み専用領域として用いることで、データが正常に書き込めなかった場合でも、前回の書き込み時に記憶していたデータを失わないことを可能にするという効果がある。さらには、２個の記憶領域を設けて、バックアップ動作が正常に行われたならば電源オン毎に書き込み専用領域と読み出し専用領域とを入れ替えていることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域の長寿命化を可能にしている。
【００５９】
請求項３の発明は、請求項１において、前記不揮発性メモリは、前記書き込み専用領域及び前記読み出し専用領域を含む複数の記憶領域と、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域とを有しており、前記データ消去手段が書き込み専用領域のデータを消去できない時、及び前記判定手段の判定結果が正常でない時に前記管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域を書き込み専用領域にする領域変更手段とを備えるので、不揮発性メモリ内の記憶領域が故障した場合、その故障した領域を２度と使用せずに正常な記憶領域を新たに選択して、その後の処理を行うことで、確実に揮発性メモリのデータを記憶して、データのバックアップをより確実、正常に行うことができるという効果がある。さらには、複数の記憶領域を設けて、バックアップ動作が正常に行われたならば、電源オン毎に書き込み専用領域と読み出し専用領域とを入れ替えていることにより、１個の記憶領域にかかる負担を軽減させて、記憶領域のさらなる長寿命化を可能にしている。
【００６０】
請求項４の発明は、電源のオフを検知すると、データが読み書きされる揮発性メモリのデータを読み出して、電気的に書き換え可能なバックアップ用不揮発性メモリの読み出し専用領域と書き込み専用領域との少なくとも２個の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、次に、電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内で読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを読み出して前記揮発性メモリに書き込むデータ復帰動作を行い、データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去するので、請求項１と同様の効果を奏する。
【００６１】
請求項５の発明は、請求項４において、前記不揮発性メモリは、前記書き込み専用領域と、前記読み出し専用領域との２個の記憶領域を有するので、請求項２と同様の効果を奏する。
【００６２】
請求項６の発明は、請求項４において、電源のオフを検知すると、前記揮発性メモリのデータを読み出して、前記不揮発性メモリの複数の記憶領域のうち書き込み専用領域にデータを書き込むバックアップ動作を行い、バックアップ動作後、前記バックアップ動作が正常に行われたか否かを判定して、前記判定結果を保存し、前記バックアップ動作が正常に行われていなければ、前記不揮発性メモリが有する、前記複数の記憶領域の中から正常な記憶領域を選択できる情報を書き込んだ１個の管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更して、次に電源がオンすると、前記バックアップ動作が正常に行われておれば、前記不揮発性メモリ内の複数の記憶領域のうち読み出し専用領域と書き込み専用領域との各領域を互いに入れ替え、正常に行われていなければ、読み出し専用領域と書き込み専用領域とは現状に維持されて、次に前記不揮発性メモリの読み出し専用領域のデータを前記揮発性メモリに書き込むデータ復帰動作を行い、前記データ復帰動作の直後に前記不揮発性メモリの書き込み専用領域のデータを消去し、前記データ消去手段が前記書き込み専用領域のデータを消去できない時には、前記不揮発性メモリの管理領域の情報を用いて前記複数の記憶領域の中から選択した正常な記憶領域に書き込み専用領域を変更してから、書き込み専用領域のデータを消去するので、請求項３と同様の効果を奏する。
【図面の簡単な説明】
【図１】  本発明の実施形態１，２、及び参考例１，２のプログラマブルコントローラの構成を示す図である。
【図２】  本発明の参考例１のＥＥＰＲＯＭの記憶領域とＲＡＭとの関係を示す図である。
【図３】  （ａ），（ｂ）本発明の同上の動作フローチャートを示す図である。
【図４】  本発明の実施形態１のＥＥＰＲＯＭの記憶領域とＲＡＭとの関係を示す図である。
【図５】  （ａ），（ｂ）本発明の同上の動作フローチャートを示す図である。
【図６】  本発明の実施形態２のＥＥＰＲＯＭの記憶領域とＲＡＭとの関係を示す図である。
【図７】  （ａ），（ｂ）本発明の同上の動作フローチャートを示す図である。
【図８】  本発明の参考例２のＥＥＰＲＯＭの記憶領域とＲＡＭとの関係を示す図である。
【図９】  （ａ），（ｂ）本発明の同上の動作フローチャートを示す図である。
【図１０】  従来例のＥＥＰＲＯＭの記憶領域とＲＡＭとの関係を示す図である。
【図１１】  （ａ），（ｂ）同上の動作フローチャートを示す図である。
【符号の説明】
１  電源回路
２  電源オフ検知回路
３  ＣＰＵ
４  ＲＯＭ
５  ＥＥＰＲＯＭ
６  ＲＡＭ
７  入出力用ＩＯ
８  インタフェース
９  アドレス・データ・Ｉ／Ｏバス
【図１】
0004131116.tif 000002
【図２】
0004131116.tif 000003
【図３】
0004131116.tif 000004
【図４】
0004131116.tif 000005
【図５】
0004131116.tif 000006
【図６】
0004131116.tif 000007
【図７】
0004131116.tif 000008
【図８】
0004131116.tif 000009
【図９】
0004131116.tif 000010
【図１０】
0004131116.tif 000011
【図１１】
0004131116.tif 000012