【手続補正書】
【提出日】平成22年4月20日(2010.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
前記アドレス記憶制御手段は、
前記第１の記憶手段の先頭の記憶領域に記憶されている前記時刻データと前記計時手段により計時される前記判別時の時刻データの差から仮のアドレスを設定する仮アドレス設定手段と、
前記仮アドレス設定手段によって設定された前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されている場合であって、前記仮のアドレスの１つ前のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第１の条件を満たすか否かを判別する第１の判別手段と、
前記第１の判別手段により前記第１の条件を満たすと判別されると、前記仮のアドレスを前記第２の記憶手段に記憶する記憶処理手段と、
前記第１の判別手段により前記第１の条件を満たさないと判別されると、前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは当該仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されているとの第２の条件と、前記仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第３の条件のいずれが満たされるかを判別する第２の判別手段と、
前記第２の判別手段により前記第２の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスと前記先頭の記憶領域のアドレスの間の所定のアドレスに変更し、前記第２の判別手段により前記第３の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスの次のアドレスに変更する仮アドレス変更手段と、
前記記憶処理手段が前記仮のアドレスを前記第２の記憶手段に記憶するまで、前記第１の判別手段、前記第２の判別手段および前記仮アドレス変更手段による処理を繰り返す繰返制御手段と、
からなることを特徴とする請求項２に記載のデータ保存装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記アドレス記憶制御手段は、
前記第１の記憶装置の先頭の記憶領域に記憶されている前記時刻データと前記計時装置により計時される前記判別時の時刻データの差から仮のアドレスを設定する仮アドレス設定手段と、
前記仮アドレス設定手段によって設定された前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されている場合であって、前記仮のアドレスの１つ前のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第１の条件を満たすか否かを判別する第１の判別手段と、
前記第１の判別手段により前記第１の条件を満たすと判別されると、前記仮のアドレスを前記第２の記憶手段に記憶する記憶処理手段と、
前記第１の判別手段により前記第１の条件を満たさないと判別されると、前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは当該仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されているとの第２の条件と、前記仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第３の条件のいずれが満たされるかを判別する第２の判別手段と、
前記第２の判別手段により前記第２の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスと前記先頭の記憶領域のアドレスの間の所定のアドレスに変更し、前記第２の判別手段により前記第３の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスの次のアドレスに変更する仮アドレス変更手段と、
前記記憶処理手段が前記仮のアドレスを前記第２の記憶手段に記憶するまで、前記第１の判別手段、前記第２の判別手段および前記仮アドレス変更手段による処理を繰り返す繰返制御手段と、
からなり、
前記コンピュータを、前記仮アドレス設定手段、前記第１の判別手段、前記記憶処理手段、前記第２の判別手段、前記仮アドレス変更手段及び繰返制御手段として機能させることを特徴とする請求項８に記載のプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】データ保存装置
【技術分野】
【０００１】
本発明は、計測データを保存するためのデータ保存装置であって、特に、記憶媒体としてＮＡＮＤ型フラッシュメモリを使用したデータ保存装置に関する。
【背景技術】
【０００２】
太陽電池により直流電力を発電し、パワーコンディショナにより直流電力を交流電力に変換して商用電力系統に連系させて電力を供給する太陽光発電システムがある。この太陽光発電システムにおいて発電状況を管理するために、パワーコンディショナの動作状況を示す発電データが計測される。また、気象状況と発電効率との関係を分析するために、日射量などの気象データも計測される。これらの計測データは所定時間ごと（例えば１分ごと）に、管理用のコンピュータに送信され、蓄積されて、気象状況と発電効率との関係を分析するために使用される。この計測データの送信にトラブルが発生した場合（例えば、管理用のコンピュータの不安定動作により計測データの受信ができていなかった場合など）に備えて、太陽光発電システムのデータ保存装置に所定期間（例えば３ヶ月間）の計測データを保存しておく必要がある。このため、太陽光発電システムのデータ保存装置は、大量のデータを保存できるだけの記憶容量が必要とされる。
【０００３】
例えば、太陽光発電システムに２０台のパワーコンディショナが接続されており、各パワーコンディショナから入力される発電データを記憶するために必要な記憶容量が各１４byteであり、気象データを記憶するために必要な記憶容量が３２byteだとすると、１分につき２０×１４＋３２＝３１２byte、３か月分だと３１２byte×６０分×２４時間×３０日×３月≒４０ＭＢの記憶容量が必要とされる。
【０００４】
また、蓄積されたデータが停電により消失しないようにする必要もある。補助電源としてバッテリを設ける方法があるが、メンテナンスが必要となるので、維持コストが上昇する。メンテナンスを不要とするために、停電時に電源を供給できるようにするのではなく、電源が供給されなくても記憶されているデータが消失しないフラッシュメモリなどの不揮発性メモリを使用することが好ましい。
【０００５】
フラッシュメモリにはＮＯＲ型フラッシュメモリとＮＡＮＤ型フラッシュメモリがある。ＮＯＲ型フラッシュメモリは、１バイト単位のランダムアクセスが可能であるが、大容量化には向いておらず、書き込み速度が遅い。ＮＯＲ型フラッシュメモリを上記の太陽光発電システムのデータ保存装置に使用する場合、４０ＭＢの記憶容量を確保するために、２ＭＢのＮＯＲ型フラッシュメモリが２０個必要となる。２０個のＮＯＲ型フラッシュメモリを搭載するとデータ保存装置が大型化、重量化することになり好ましくない。また、コストの面でも現実的でない。
【０００６】
一方、ＮＡＮＤ型フラッシュメモリは、大容量化が可能で書き込み速度が速い。従って、大きな記憶容量が必要とされるデータ保存装置には、ＮＡＮＤ型フラッシュメモリの方が適している。しかし、一般的なＮＡＮＤ型フラッシュメモリの各記憶領域における書き換え可能回数は１０万回程度である。また、ＦＡＴなどのファイル形式でデータを保存すると、データの書き換えごとにメモリの管理領域の書き換えが行われる。従って、ＮＡＮＤ型フラッシュメモリ全体としても書き換え可能回数は１０万回程度となる。従って、ＮＡＮＤ型フラッシュメモリをデータ保存装置に搭載する場合、データの書き換え回数を可及的に減少させることが望ましく、データの書き換え回数を削減するための方法が開発されている。
【０００７】
例えば、特表２００５−５２４１５６号公報には、計測データを格納するためにＮＡＮＤ型フラッシュメモリを使用する方法が記載されている。この公報に記載の方法によると、新たに取得されたデータをＮＡＮＤ型フラッシュメモリに格納されているデータと比較して変更が必要な場合にのみ書き換えを行う。これにより、ＮＡＮＤ型フラッシュメモリの書き換え回数が削減される。
【０００８】
【特許文献１】特表２００５‐５２４１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、データが新たに取得される毎にデータを書き換える必要がある場合には、上記公報に記載の方法による書き換え回数の削減効果は働かない。例えば、上記太陽光発電システムのデータ保存装置の場合、１分ごとに新たなデータが取得される。データ取得からメモリへの保存までの間に停電が発生すると取得されたデータが失われてしまうので、取得されたデータはその都度記憶されるのが望ましい。従って、データの書き換えが１分毎に行われ、メモリの管理領域は１分ごとに書き換えられることになる。そうすると、１０万回÷（６０分×２４時間）≒７０日でメモリの管理領域の書き換え回数が保証された回数を超えることになる。すなわち、ＮＡＮＤ型フラッシュメモリの寿命の実用的な期間の保証ができない。
【００１０】
本発明は上記した事情のもとで考え出されたものであって、使用されるメモリの一部にデータ書き換えが集中することを防ぎ、メモリの実用的な寿命を保証できるデータ保存装置を提供することをその目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【００１２】
本発明の第１の側面によって提供されるデータ保存装置は、複数の記憶領域に分割され、各記憶領域にアドレスが順番に付されている第１の記憶手段と、データの保存が指令される毎に、当該データを前記第１の記憶手段の各記憶領域にアドレス順に記憶させる記憶制御手段と、を備えたデータ保存装置であって、前記データを記憶すべき前記第１の記憶手段の記憶領域のアドレスを記憶する、当該第１の記憶手段とは異なる第２の記憶手段と、前記第１の記憶手段に前記データが記憶される毎に、前記第２の記憶手段に記憶された前記アドレスを、前記第１の記憶手段に付された複数のアドレスが循環するように次のアドレスに変更するアドレス変更手段とを備え、前記記憶制御手段は、前記データを、前記第１の記憶手段の、前記第２の記憶手段に記憶された前記アドレスの記憶領域に記憶させることを特徴とする（請求項１）。
【００１３】
この構成によると、第２の記憶手段には、第１の記憶手段においてデータが記憶されるべき記憶領域を指定するアドレスが記憶されている。このアドレスはその指定する第１の記憶手段の記憶領域にデータが記憶されると、次の記憶領域が有る場合は次の記憶領域を、次の記憶領域が無い場合は先頭の記憶領域を指定するアドレスに更新される。データの記憶のたびに書き換えられるメモリの管理領域が第１の記憶手段の中に無いので、第１の記憶手段において一部の記憶領域にデータの書き換えが集中することが防止される。また、データの記憶がアドレスの順に行われるので、各記憶領域の書き換えが均一化され記憶領域毎のデータ書き換え回数は緩和される。従って、頻繁にデータの書き換えが必要であっても、同じ記憶領域に書き換えが集中せず、書き換えによる劣化が抑制されるので、第１の記憶手段の実用的な寿命を保証することができる。
【００１４】
なお、請求項１に記載のデータ保存装置において、前記第２の記憶手段は、揮発性メモリからなり、前記記憶制御手段は、現在の時刻を計時する計時手段を有し、前記データをその計時手段により計時される保存時の時刻データとともに前記第１の記憶手段の記憶領域に記憶させるものであり、前記第２の記憶手段に記憶された前記アドレスが消失しているか否かを判別する判別手段と、前記判別手段により前記アドレスが消失していると判別されると、前記第１の記憶手段の各記憶領域に記憶されている前記時刻データと前記計時手段により計時される判別時の時刻データとを用いて当該判別後に保存が指令されるデータに対する前記第１の記憶手段の記憶領域のアドレスを決定し、そのアドレスを前記第２の記憶手段に記憶するアドレス記憶制御手段と、を更に備えるとよい（請求項２）。
【００１５】
この構成によると、第１の記憶手段にはデータに対応付けて時刻データが記憶されている。第２の記憶手段に記憶されたアドレスが消失した場合、各記憶領域に記憶されている時刻データと現在時刻とから、次にデータが記憶されるべき記憶領域を指定するアドレスが決定されるので、停電などで第２の記憶手段の記憶が消失した場合でも、記憶再開時にデータを記憶すべき記憶領域が不明となることを防ぐことができる。
【００１６】
また、請求項２に記載のデータ保存装置において、前記アドレス記憶制御手段は、前記第１の記憶手段の先頭の記憶領域に記憶されている前記時刻データと前記計時手段により計時される前記判別時の時刻データの差から仮のアドレスを設定する仮アドレス設定手段と、前記仮アドレス設定手段によって設定された前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されている場合であって、前記仮のアドレスの１つ前のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第１の条件を満たすか否かを判別する第１の判別手段と、前記第１の判別手段により前記第１の条件を満たすと判別されると、前記仮のアドレスを前記第２の記憶手段に記憶する記憶処理手段と、前記第１の判別手段により前記第１の条件を満たさないと判別されると、前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは当該仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されているとの第２の条件と、前記仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第３の条件のいずれが満たされるかを判別する第２の判別手段と、前記第２の判別手段により前記第２の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスと前記先頭の記憶領域のアドレスの間の所定のアドレスに変更し、前記第２の判別手段により前記第３の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスの次のアドレスに変更する仮アドレス変更手段と、前記記憶処理手段が前記仮のアドレスを前記第２の記憶手段に記憶するまで、前記第１の判別手段、前記第２の判別手段および前記仮アドレス変更手段による処理を繰り返す繰返制御手段と、からなるとよい（請求項３）。
【００１７】
この構成によると、停電などで第２の記憶手段の記憶が消失した場合でも、時刻データを利用して第１の記憶手段の記憶領域の探索を行うことにより、早急に、次にデータが記憶されるべき記憶領域を指定するアドレスを決定することができる。
【００１８】
なお、請求項１〜３のいずれかに記載のデータ保存装置において、前記第１の記憶手段は、不揮発性メモリであるとよい（請求項４）。
【００１９】
この構成によると、第１の記憶手段に記憶されたデータは停電などの電源供給停止により失われることが無いので、データ保存装置に補助電源を設ける必要が無い。
【００２０】
また、請求項４に記載のデータ保存装置において、前記第１の記憶手段は、ＮＡＮＤ型フラッシュメモリであるとよい（請求項５）。
【００２１】
この構成によると、ＮＡＮＤ型フラッシュメモリは大容量化に適しているので、大型化やコストを増大することなしに、データ保存装置の記憶容量の大容量化を図ることができる。
【００２２】
なお、請求項１〜５のいずれかに記載のデータ保存装置において、前記第１の記憶手段の各記憶領域に記憶される複数のデータは、太陽光発電システムにおいて周期的に計測される当該システムの動作を制御するデータと気象に関するデータであるとよい（請求項６）。
【００２３】
この構成によると、周期的に計測される当該システムの動作を制御するデータと気象に関するデータは頻繁に書き換えられるものであるが、この書き換えによっても第１の記憶手段の実用的な寿命を保証することができる。
【００２４】
本発明の第２の側面によって提供されるプログラムは、コンピュータを、複数の記憶領域に分割され、各記憶領域にアドレスが順番に付されている不揮発性の第１の記憶装置のデータを記憶すべきアドレスを、当該第１の記憶装置とは異なる揮発性の第２の記憶装置に記憶するアドレス記憶制御手段と、前記データの保存が指令される毎に、前記第１の記憶装置の、前記第２の記憶装置に記憶されたアドレスの記憶領域に当該データを記憶するデータ記憶制御手段と、前記第１の記憶装置に前記データを記憶する毎に、前記第２の記憶装置に記憶された前記アドレスを、前記第１の記憶装置に付された複数のアドレスが循環するように次のアドレスに変更するアドレス変更手段と、して機能させることを特徴とする(請求項７)。この構成によると、上記請求項１の発明と同様の作用効果を奏する。
【００２５】
なお、請求項７に記載のプログラムにおいて、前記記憶制御手段は、前記データを計時装置により計時される保存時の時刻データとともに前記第１の記憶手段の記憶領域に記憶させるものであり、前記コンピュータを、前記第２の記憶装置に記憶された前記アドレスが消失しているか否かを判別する判別手段と、前記判別手段により前記アドレスが消失していると判別されると、前記第１の記憶装置の各記憶領域に記憶されている前記時刻データと前記計時装置により計時される判別時の時刻データとを用いて当該判別後に保存が指令されるデータに対する前記第１の記憶装置の記憶領域のアドレスを決定し、そのアドレスを前記第２の記憶装置に記憶する第２のアドレス記憶制御手段と、して更に機能させると良い(請求項８)。この構成によると、上記請求項２の発明と同様の作用効果を奏する。
【００２６】
また、請求項８に記載のプログラムにおいて、前記アドレス記憶制御手段は、前記第１の記憶装置の先頭の記憶領域に記憶されている前記時刻データと前記計時装置により計時される前記判別時の時刻データの差から仮のアドレスを設定する仮アドレス設定手段と、前記仮アドレス設定手段によって設定された前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されている場合であって、前記仮のアドレスの１つ前のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第１の条件を満たすか否かを判別する第１の判別手段と、前記第１の判別手段により前記第１の条件を満たすと判別されると、前記仮のアドレスを前記第２の記憶手段に記憶する記憶処理手段と、前記第１の判別手段により前記第１の条件を満たさないと判別されると、前記仮のアドレスの記憶領域に前記データが記憶されていないか、若しくは当該仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも前の保存時刻を示す時刻データが記憶されているとの第２の条件と、前記仮のアドレスの記憶領域に前記先頭の記憶領域に記憶された前記データの保存時刻よりも後の保存時刻を示す時刻データが記憶されているとの第３の条件のいずれが満たされるかを判別する第２の判別手段と、前記第２の判別手段により前記第２の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスと前記先頭の記憶領域のアドレスの間の所定のアドレスに変更し、前記第２の判別手段により前記第３の条件を満たすと判別されると、前記第１の判別手段の処理における前記仮のアドレスを当該仮のアドレスの次のアドレスに変更する仮アドレス変更手段と、前記記憶処理手段が前記仮のアドレスを前記第２の記憶手段に記憶するまで、前記第１の判別手段、前記第２の判別手段および前記仮アドレス変更手段による処理を繰り返す繰返制御手段と、からなり、前記コンピュータを、前記仮アドレス設定手段、前記第１の判別手段、前記記憶処理手段、前記第２の判別手段、前記仮アドレス変更手段及び繰返制御手段として機能させるとよい(請求項９)。この構成によると、上記請求項３の発明と同様の作用効果を奏する。
【００２７】
本発明の第３の側面によって提供される記録媒体は、請求項７〜９のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする(請
求項１０)。
【００２８】
本発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の好ましい実施の形態を、太陽光発電システムのデータ保存装置として適用した場合を例に、図面を参照して具体的に説明する。
【００３０】
図１は、太陽光発電システムのデータ保存装置の内部構成を示すブロック図である。図１に示すように、太陽光発電システムは、複数のパワーコンディショナ２０、気象データの計測装置４０〜４４、パワーコンディショナ２０の動作状況を示す発電データと気象データとを保存するデータ保存装置１、太陽光発電システムの稼働状況及び気象と発電効率との関係を分析するための管理用コンピュータ５、及び図示しない系統と太陽電池とで構成されている。各パワーコンディショナ２０の電力出力端は系統の電力入力端に並列に接続されている。各パワーコンディショナ２０の電圧／電流の計測値の出力端と各計測装置４０〜４４の出力端はデータ保存装置１に接続されている。データ保存装置１には管理用コンピュータ５が接続されている。
【００３１】
データ保存装置１は、発電データと気象データとを収集して蓄積し、外部の管理用コンピュータ５からの指示によりデータを当該管理用コンピュータ５に送信するものである。データ保存装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＡＮＤ型フラッシュメモリ１４、パワーコンディショナ入出力Ｉ／Ｆ１５、計測装置入出力Ｉ／Ｆ１６、及び入出力Ｉ／Ｆ１７、タイマ１８を備えており、各部はバス（ＢＵＳ）１９によって相互に接続されている。
【００３２】
パワーコンディショナ入出力Ｉ／Ｆ１５には、２０台のパワーコンディショナ２０が接続されている。また、計測装置入出力Ｉ／Ｆ１６には、気象データを計測するための複数種類の計測装置（本実施形態では５種類の計測装置）、すなわち、日射計４０、気温計４１、風向計４２、風速計４３、雨量計４４が接続されている。また、入出力Ｉ／Ｆ１７には、通信回線を介して、外部の管理用コンピュータ５が接続されている。
【００３３】
データ保存装置１は、各パワーコンディショナ２０及び各計測装置４０〜４４から入力される各計測値から計測項目毎に算出された計測データを、管理用コンピュータ５に送信し、ＮＡＮＤ型フラッシュメモリ１４に記憶する。各計測値は、ＣＰＵ１１からの６秒毎の計測指示に対して入力され、１０個の計測値が入力される毎に平均値が算出されるので、各計測データは１分毎に算出される。なお、各計測項目の計測値の入力及び計測データの算出は同じタイミングで行われる。計測項目毎に算出された計測データはまとめて、その記憶される時刻を示すデータであるタイムスタンプとともに、ＮＡＮＤ型フラッシュメモリ１４の１つのセクタに記憶される。なお、ＣＰＵ１１による計測指示から計測値の入力までの時間はごく短い時間であり、ＣＰＵ１１による計測データの算出もごく短い時間である。従って、タイムスタンプが示す計測データの記憶された時刻は、１０個目の計測値が計測された時刻と同一と考えることができる。
【００３４】
なお、各パワーコンディショナ２０からは、計測値として、その接続されている太陽電池が発電した直流電力の電流値と電圧値、当該パワーコンディショナ２０により変換された交流電力の電流値と電圧値が入力される。それぞれ算出された計測データが発電データとして記憶される。本実施形態では、２０台のパワーコンディショナ２０が設けられているので、１分毎に算出される発電データは８０個の計測データとなる。日射計４０、気温計４１、風向計４２、風速計４３、雨量計４４からは、計測値として、それぞれ日射量、気温、風向、風速、雨量が入力され、それぞれ算出された日射量データ、気温データ、風向データ、風速データ、雨量データが気象データとして記憶される。
【００３５】
ＣＰＵ１１は、データ保存装置１の制御の中枢となるものであり、ＲＯＭ１２に記憶されている制御プログラムに従って制御を行う。具体的には、ＣＰＵ１１はタイマ１８が計時する時刻に従って６秒ごとに、パワーコンディショナ入出力Ｉ／Ｆ１５を介して各パワーコンディショナ２０に計測指示を出し、計測装置入出力Ｉ／Ｆ１６を介して各計測装置４０〜４４に計測指示を出す。また、ＣＰＵ１１は、入力された計測値の平均値を計測データとして算出する。更に、ＣＰＵ１１は、算出した計測データを管理用コンピュータ５に送信し、ＮＡＮＤ型フラッシュメモリ１４に記憶する。また、ＣＰＵ１１は、管理用コンピュータ５からの要求に基づき、保存されている計測データを管理用コンピュータ５へ送信する。
【００３６】
ＲＯＭ１２は、データ保存装置１を制御するための制御プログラムを記憶するものである。
【００３７】
ＮＡＮＤ型フラッシュメモリ１４は、ＣＰＵ１１が算出した計測データを保存するためのものである。ＮＡＮＤ型フラッシュメモリ１４は、データの書き換えの度に管理領域の書き換えが行われるファイル形式を採用せず、全てのメモリ領域をセクタに分割し、ＲＡＭ１３に記憶されたアドレスに基づいて、計測データを記憶する方法を採用している。この記憶方法については後述する。
【００３８】
ＲＡＭ１３は、ＣＰＵ１１に対して作業領域を提供するものであり、計算データ等を一時的に記憶する。また、ＲＡＭ１３には、ＮＡＮＤ型フラッシュメモリ１４内の、次に計測データを記憶するセクタ（以下、「保存先セクタ」という。）のアドレス（以下、「保存先セクタアドレス」という。）が記憶されている。
【００３９】
パワーコンディショナ入出力Ｉ／Ｆ１５は、各パワーコンディショナ２０とのインターフェースを司るものである。各パワーコンディショナ２０は、太陽電池が発電した直流電力を交流電力に変換して商用電力系統に連系させて電力を供給するものであり、商用電力系統に対して並列に接続されている。各パワーコンディショナ２０は、ＣＰＵ１１からの計測指示を受けると、その計測指示に応じて太陽電池が発電した直流電力の電流値と電圧値、変換された交流電力の電流値と電圧値を計測し、その計測値をＣＰＵ１１に返送する。本実施形態では２０台のパワーコンディショナ２０が接続されている場合を説明したがこれに限られず、１台以上の任意の台数が接続されていればよい。
【００４０】
計測装置入出力Ｉ／Ｆ１６は、各計測装置４０〜４４とのインターフェースを司るものである。日射計４０、気温計４１、風向計４２、風速計４３、雨量計４４は、ＣＰＵ１１からの計測指示を受けると、その計測指示に応じてそれぞれ日射量、気温、風向、風速、雨量を計測し、その計測値をＣＰＵ１１に返送する。計測装置入出力Ｉ／Ｆ１６に接続される計測装置は上記に限られず、太陽光発電の発電効率の分析のために必要とされるデータを計測するための計測装置が接続される。
【００４１】
入出力Ｉ／Ｆ１７は、外部の管理用コンピュータ５とのインターフェースを司るものである。ＣＰＵ１１は、計測データを算出すると、算出された計測データを管理用コンピュータ５に送信する。管理用コンピュータ５は、受信した計測データにより太陽光発電システムの稼働状況を監視し、蓄積した計測データを用いて気象条件に対する発電量の関係を分析する。また、蓄積した計測データにデータの欠損が生じた場合、当該欠損データを送信させるために、管理用コンピュータ５は、データ保存装置１に対して要求を行い、ＮＡＮＤ型フラッシュメモリ１４に保存されている計測データを送信させる。
【００４２】
タイマ１８は、計測値を計測する時刻を計時するものである。タイマ１８は、いわゆるＲＴＣ（Real Time Clock）であって、現在時刻を計時するものであり、その計時する時
刻には年月日の情報も含まれる。ＣＰＵ１１は、タイマ１８が計時する時刻に従い６秒ごとに計測指示を行う。また、タイマ１８が計時する、計測データが記憶された時刻はタイムスタンプとして、計測データとともにＮＡＮＤ型フラッシュメモリ１４に記憶される。
【００４３】
以下に、本実施形態におけるＮＡＮＤ型フラッシュメモリ１４の各セクタのデータ構造及び、記憶方法について説明する。
【００４４】
図２は、ＮＡＮＤ型フラッシュメモリ１４の各セクタのデータ構造を説明するための図である。図３は、ＮＡＮＤ型フラッシュメモリ１４に記憶されたデータの例を示す図である。
【００４５】
図２に示すように、各セクタは、アドレス領域１０１、計測データ領域１０２、タイムスタンプ領域１０３、データフラグ領域１０４からなる。１つのセクタは５１２Byteの記憶領域を有しており、ＮＡＮＤ型フラッシュメモリ１４は各セクタ単位で書き換えられる。
【００４６】
アドレス領域１０１には、セクタを特定するためのアドレスが記憶されている。本実施形態では、先頭セクタのアドレスは‘０’とされ、以下のセクタのアドレスは‘１’ずつ増加されている（図３参照）。
【００４７】
計測データ領域１０２には、各パワーコンディショナ２０より入力された計測値からＣＰＵ１１が算出した発電データと各計測装置４０〜４４より入力された計測値からＣＰＵ１１が算出した気象データとが計測データとして記憶される。
【００４８】
各パワーコンディショナ２０の発電データは１４Byteからなり、気象データは３２Byteからなるので、合計として２０×１４＋３２＝３１２Byteが計測データ領域として割り当てられている。
【００４９】
タイムスタンプ領域１０３には、計測データを記憶した時刻を示すデータであるタイムスタンプが記憶される。この時刻はタイマ１８により計時されている年月日及び時分が用いられる（図３参照）。なお、上述したように、タイムスタンプが示す計測データを記憶した時刻は、計測データの算出のための計測値のうち最後の計測値が計測された時刻を示す。
【００５０】
データフラグ領域１０４には、当該セクタに計測データが記憶されているか否かを示す情報が記憶されている。当該セクタに計測データが記憶されていない場合は“０”が記憶されており、当該セクタに計測データが記憶されると“１”に書き換えられる（図３参照）。
【００５１】
ＮＡＮＤ型フラッシュメモリ１４の記憶領域は、５１２Byteのセクタ毎に分けられている。例えば、本実施形態のＮＡＮＤ型フラッシュメモリ１４の記憶容量は７０ＭＢなので、７０００００００÷５１２≒１３６７１８個のセクタを含んでいる。各セクタはアドレスによりその順番が決められている。
【００５２】
本実施形態において、計測データはＮＡＮＤ型フラッシュメモリ１４にリング形式で記憶される。すなわち、アドレスの順に各セクタに計測データが記憶されてゆき、最後のアドレスのセクタに計測データが記憶されると、次は先頭のアドレスのセクタに計測データが記憶される。
【００５３】
図４は計測データがＮＡＮＤ型フラッシュメモリ１４に記憶される形式を説明するための図である。簡略化のためセクタ数が１０個の場合で説明している。時刻１２：００に計測された計測データはアドレス０のセクタに記憶される。計測されるごとに、アドレスの順に各セクタに計測データが記憶される。途中、計測されなかった場合はその時刻の計測データは記憶されず、次の計測された計測データが記憶される（図４において、時刻１２：０４〜１２：０６には計測されなかったので、アドレス４のセクタには時刻１２：０７の計測データが記憶されている）。アドレス９のセクタに時刻１２:１２の計測データが記憶されると、次の時刻１２：１３の計測データは先頭のアドレス０のセクタに記憶される。
【００５４】
このリング形式の記憶方法により、ＮＡＮＤ型フラッシュメモリ１４内のデータの書き換えは、常に１番古い計測データに対して行われることになる。従って、ＮＡＮＤ型フラッシュメモリ１４には、古い計測データから順に最新の計測データまで、セクタ数に応じた数の計測データが記憶されることになる。例えば、本実施形態においては、セクタ数が１３６７１８個なので、１３６７１８分前（すなわち、９４日と２２時間３８分前）から現在までの計測データが記憶されることになり、３か月分の計測データを記憶することができる。
【００５５】
例えば、図３においては、アドレス１００２のセクタに２００７年１月２７日６時３分に記憶された計測データから、アドレス１００１のセクタに２００７年５月２日４時４１分に記憶された計測データまで、約３か月分の計測データが記憶されている。
【００５６】
また、１分ごとのデータの保存の都度、保存先のセクタをサーチする手間を省き、同時にそのサーチにかかる時間のためにデータが保存できなくなるという問題を確実に回避するために、本実施形態では、ＲＡＭ１３に保存先セクタアドレス（次に計測データを保存するセクタのアドレス）が記憶されている。この保存先セクタアドレスは、ＮＡＮＤ型フラッシュメモリ１４内の保存先セクタに計測データが記憶されると、次のセクタのアドレスに更新される。また、保存先セクタアドレスは、最後のセクタに計測データが記憶されると、先頭のセクタのアドレスに更新される。これにより、最後のセクタに計測データが記憶されると、次は先頭のセクタに計測データが記憶されることになる。
【００５７】
ＲＡＭ１３に保存先セクタアドレスを記憶しているので、ＮＡＮＤ型フラッシュメモリ１４にメモリの管理領域を設ける必要がない。よって、ファイル形式の様に管理領域に対する書き換えが集中することがない。従って、ＮＡＮＤ型フラッシュメモリ１４が１０万回の書き換えを保証されていた場合、各記憶領域は３月ごとに計測データが書き換えられるので、計算上２５０００年（＝１０００００÷４）の書き換え寿命が保証される。
【００５８】
なお、ＲＡＭ１３に保存先セクタアドレスを記憶しているので、停電時などの電源供給が停止された場合には保存先セクタアドレスがＲＡＭ１３から消失する。従って、電源供給が再開され計測データの記憶を再開するときに、計測データを記憶するセクタが不明となる。これを回避するために、直近にデータが保存されたセクタを見つけ出し、その次のセクタを保存先セクタアドレスとする処理を、電源供給が再開されるとすぐに行う必要がある。
【００５９】
本実施形態において、この電源再供給時又はリセット時の保存先セクタアドレスは、先頭セクタに記憶されているタイムスタンプと現在時刻とから探索される。以下に、保存先セクタアドレス探索の処理手順について、図６に示すフローチャートと図５を参照して説明する。
【００６０】
図５は、保存先セクタアドレス探索の処理手順を説明するための、ＮＡＮＤ型フラッシュメモリ１４に記憶されたデータの例である。簡略化のため、タイムスタンプ領域１０３のタイムスタンプについては年月日の要素を省略し、時分の要素のみを１２：００のように時刻の形式で記載している。図５（ａ）は、未記憶状態のＮＡＮＤ型フラッシュメモリ１４に時刻１２：００から計測データの記憶を開始して、アドレス１０１のセクタに１３：４１のタイムスタンプと計測データを記憶したところで計測データの記憶が中断された状態である。従って、アドレス１０２以降のセクタには計測データ及びタイムスタンプが記憶されていない。図５（ｂ）は、３ヶ月以上前から計測データの記憶が継続されていて、アドレス１０１に１３：４１のタイムスタンプと計測データを記憶したところで計測データの記憶が中断された状態である。従って、アドレス１０２以降のセクタには、約３ヶ月前に記憶された計測データ及びタイムスタンプが記憶されている。
【００６１】
図６は、保存先セクタアドレス探索の処理手順を示すフローチャートである。
【００６２】
この処理は、停電時などの電源供給が停止された後に電源供給が再開された時に行われ、ＲＡＭ１３から消失した保存先セクタアドレス（図５の状態においては、アドレス１０２）の探索を行うものである。
【００６３】
まず、現在時刻を絶対時刻Ｔpに変換する（Ｓ１）。ここで、絶対時刻とは、任意に設
定した基準時刻から現在時刻までの経過時間を分単位で表したもので、時刻を比較する処理を簡略化するために使用される。例えば、２００７年１月１日午前０時０分を基準時刻とし、現在時刻を２００７年５月１日午後４時１０分とすると、２００７年１月１日午前０時０分から２００７年５月１日午後４時１０分までの経過時間は、３１日＋２８日＋３１日＋３０日＋１６時間＋１０分であるから、これを分単位に変換すると、１７３７７０（＝（３１＋２８＋３１＋３０）×２４＋１６）×６０＋１０）となる。なお、基準時刻は、任意に設定され、例えば、データ保存装置１の設置日や製造日の属する年の１月１日午前０時０分としてもよい。
【００６４】
次に、先頭セクタに計測データがあるか否かが判別される（Ｓ２）。すなわち、アドレス“０”のセクタのデータフラグ領域１０４の情報が読み出され、“０”であるか“１”であるかが判別される。以下の処理における、計測データがあるか否かの判別も同様である。先頭セクタに計測データがないと判別されると（すなわち、データフラグ領域１０４から読み出された情報が“０”である場合）（Ｓ２：ＮＯ）、ＮＡＮＤ型フラッシュメモリ１４にまだ計測データが入力されていない状態なので、“０”が保存先セクタアドレスとしてＲＡＭ１３に記憶され（Ｓ３）、処理が終了される。これは、データ保存装置１が設置されて初めて電源が入力された状態、または、ＮＡＮＤ型フラッシュメモリ１４の記憶が全て消去されてリセットされた直後である。
【００６５】
先頭セクタに計測データがあると判別されると（すなわち、データフラグ領域１０４から読み出された情報が“１”である場合）（Ｓ２：ＹＥＳ）、先頭セクタのタイムスタンプが読み出され、絶対時刻Ｔａに変換される（Ｓ４）。すなわち、アドレス“０”のセクタのタイムスタンプ領域１０３からタイムスタンプ情報が読み出されて、絶対時刻Ｔａに変換される。
【００６６】
次に、ＴｐとＴａの差としてＸ（＝Ｔｐ−Ｔａ）が算出され（Ｓ５）、Ｘが全セクタ数Ｘｔ（例えば、本実施形態では１３６７１８個）より大きいか否かが判別される（Ｓ６）。ＸがＸｔより大きい場合（Ｓ６：ＹＥＳ）は、ＸからＸｔが減じられて（Ｓ７）、ステップＳ６に戻る。ＸがＸｔ以下の場合（Ｓ６：ＮＯ）は、ステップＳ８に進む。
【００６７】
Ｘは先頭セクタのタイムスタンプが示す時刻から現在時刻までの経過時間を分単位で示したものである。ここで、先頭セクタのアドレスは“０”であり、各セクタには順に1分
ごとに計測データが記憶され、そのアドレスは１ずつ増加する。従って、計測データの記憶が中断することなく連続して継続していたならば、Ｘは現在時刻の計測データが記憶されるべきセクタのアドレスとなる。しかし、計測データの記憶が中断されていたので、Ｘを計測データの記憶再開時に計測データが記憶されるセクタのアドレスとするのは適切でない。なぜなら、アドレスＸのセクタから計測データの記憶が再開されると、計測データの記憶中断期間に該当するセクタには前回記憶された計測データ（約3ヵ月前の計測デー
タ）が残ることになるか、あるいは計測データが記憶されていないセクタが続くことになるからである。これを防ぐために、計測データの記憶再開時の計測データは、計測データの記憶中断前に計測データが記憶されたセクタの次のセクタに記憶される必要がある。
【００６８】
例えば、図５（ａ）に示す状態で、１３：４４に計測データの記憶が再開された場合、Ｘは１０４（１２：００から１３：４４までの経過分数）となるが、次に計測データが記憶されるべきセクタのアドレスは１０２とすべきであり、このアドレスの探索がステップＳ８以降で行われる。
【００６９】
なお、計測データの記憶中断が３ヶ月以上継続していた場合、ＴｐとＴａの差として算出されたＸはＮＡＮＤ型フラッシュメモリ１４のセクタのアドレスの最大値を上回ることになる。従って、その場合は、ステップＳ６、Ｓ７で、Ｘから全セクタ数Ｘｔを減ずることで、Ｘを範囲内のアドレスにしている。
【００７０】
ステップＳ８からは、ステップＳ１〜Ｓ７で演算されたＸを仮のアドレスとして、保存先セクタアドレスの探索を行っている。すなわち、アドレスＸが保存先セクタアドレスより大きい場合（図５（ａ），（ｂ）においてはアドレス１０３以上）は保存先セクタアドレス以下となるようにアドレスＸを変更する。アドレスＸが保存先セクタアドレスより小さい場合（同１０１以下）はアドレスＸを１ずつ増加させる。これらの処理をアドレスＸが保存先セクタアドレスと一致するまで繰り返す。なお、データ保存装置１が初めて起動されてからの３ヶ月間は、計測データが記憶されていないセクタが存在する（図５（ａ）参照）。この場合は、アドレスＸのセクタのデータを読み出すことができない場合があるので、場合を分けて処理が行われる。具体的な処理について、以下に説明する。
【００７１】
まず、アドレスＸのセクタに計測データが有るか否かが判別される（Ｓ８）。アドレスＸのセクタに計測データが無い場合（Ｓ８：ＮＯ）、アドレス（Ｘ−１）のセクタに計測データが有るか否かが判別される（Ｓ９）。アドレス（Ｘ−１）のセクタに計測データが有る場合（Ｓ９：ＹＥＳ）、アドレスＸが保存先セクタアドレスとしてＲＡＭ１３に記憶され（Ｓ１０）、処理が終了される。
【００７２】
すなわち、アドレスＸのセクタに計測データが記憶されておらず、１つ前のアドレス（Ｘ−１）のセクタに計測データが記憶されている場合（図５（ａ）において、アドレスＸがアドレス１０２である場合）、アドレスＸのセクタが次に計測データが保存されるべきセクタなので、アドレスＸがＲＡＭ１３に記憶される。
【００７３】
アドレス（Ｘ−１）のセクタに計測データが無い場合（Ｓ９：ＮＯ）、“０”とＸの中間のアドレスがアドレスＸとされ（Ｓ１１）、ステップ８に戻る。すなわち、アドレスＸのセクタに計測データが記憶されておらず、１つ前のアドレス（Ｘ−１）のセクタにも計測データが記憶されていない場合（図５（ａ）において、アドレスＸがアドレス１０３以上である場合）、アドレスＸを保存先セクタアドレス以下とするために、“０”とＸの中間のアドレスをアドレスＸとする。アドレスＸが保存先セクタアドレス以下となるまでステップＳ８、Ｓ９、Ｓ１１が繰り返される。なお、“０”とＸの中間のアドレスは、Ｘが偶数の場合は２で割った値、Ｘが奇数の場合は（Ｘ−１）を２で割った値としている。例えば、図５（ａ）において、アドレスＸが３３５の場合、アドレスＸは１６７（＝３３４÷２）となる。しかし、まだ１０３以上なので再度中間のアドレスが算出されて８４（＝（１６７−１）÷２）となる。
【００７４】
ステップＳ８において計測データが有る場合（Ｓ８：ＹＥＳ）、アドレスＸのセクタのタイムスタンプが読み出され、絶対時刻Ｔに変換される（Ｓ１２）。この絶対時刻Ｔが先頭セクタのタイムスタンプの絶対時刻Ｔａより小さいか否かが判別される（Ｓ１３）。すなわち、アドレスＸのセクタに記憶されている計測データが先頭セクタに記憶されている計測データより古いか否かが判別される。
【００７５】
ＴがＴａより小さい場合（Ｓ１３：ＹＥＳ）、アドレス（Ｘ−１）のセクタのタイムスタンプが読み出され、絶対時刻Ｔ’に変換される（Ｓ１４）。この絶対時刻Ｔ’がＴａ以上であるか否かが判別される（Ｓ１５）。Ｔ’がＴａ以上の場合（Ｓ１５：ＹＥＳ）、アドレスＸが保存先セクタアドレスとしてＲＡＭ１３に記憶され（Ｓ１６）、処理が終了される。
【００７６】
すなわち、アドレスＸのセクタに記憶されている計測データが先頭セクタに記憶されている計測データより古く、１つ前のアドレス（Ｘ−１）のセクタに記憶されている計測データが先頭セクタに記憶されている計測データより新しい場合（図５（ｂ）において、アドレスＸがアドレス１０２である場合）、アドレスＸのセクタが次に計測データが保存されるべきセクタなので、アドレスＸがＲＡＭ１３に記憶される。
【００７７】
ステップＳ１５でＴ’がＴａより小さい場合（Ｓ１５：ＮＯ）、ステップＳ１１に進む。すなわち、セクタに記憶されている計測データが先頭セクタに記憶されている計測データより古く、１つ前のアドレス（Ｘ−１）のセクタに記憶されている計測データも先頭セクタに記憶されている計測データより古い場合（図５（ｂ）において、アドレスＸがアドレス１０３以上である場合）、アドレスＸを保存先セクタアドレス以下とするために、“０”とＸの中間のアドレスをアドレスＸとする。アドレスＸが保存先セクタアドレス以下となるまでステップＳ８、Ｓ１２〜Ｓ１５、Ｓ１１が繰り返される。
【００７８】
ステップＳ１３でＴがＴａ以上の場合（Ｓ１３：ＮＯ）、アドレスＸが１増加される（Ｓ１７）。すなわち、アドレスＸは保存先アドレスより小さいので（図５（ａ），（ｂ）において、アドレスＸはアドレス０〜１０１である）、アドレスＸを次のアドレスにする。
【００７９】
アドレスＸのセクタに計測データがあるか否か判別され（Ｓ１８）、計測データが無い場合（Ｓ１８：ＮＯ）、ステップＳ１６に進む。計測データが有る場合（Ｓ１８：ＹＥＳ）、アドレスＸのセクタのタイムスタンプが読み出され、絶対時刻Ｔに変換される（Ｓ１９）。この絶対時刻ＴがＴａより小さいか否かが判別される（Ｓ２０）。ＴがＴａより小さい場合（Ｓ２０：ＹＥＳ）、ステップＳ１６に進み、ＴがＴａ以上の場合（Ｓ２０：ＮＯ）、ステップＳ１７に戻る。
【００８０】
すなわち、アドレスＸのセクタに計測データが存在しなくなる（図５（ａ）において、アドレスＸがアドレス１０２となる）か、アドレスＸのセクタに記憶されている計測データが先頭セクタに記憶されている計測データより古くなる（図５（ｂ）において、アドレスＸがアドレス１０２となる）まで、アドレスＸを１ずつ増加させる。アドレスＸのセクタに計測データが存在しなくなるか、アドレスＸのセクタに記憶されている計測データが先頭セクタに記憶されている計測データより古くなると、アドレスＸのセクタが次に計測データが保存されるべきセクタなので、ステップＳ１６でアドレスＸがＲＡＭ１３に記憶される。
【００８１】
なお、保存先セクタアドレスの探索は上記方法に限られず、他の方法で行っても構わない。例えば、上記図６のフローチャートにおいて、ステップＳ１３がＮＯの場合にステップＳ１７〜Ｓ２０を繰り返すのでなく、ステップＳ１７の後、ステップＳ８に戻るようにしてもよい。また、ＣＰＵ１１の処理速度が速く探索処理に時間がかからないのであれば、先頭セクタから順に探索を行ってもよい。
【００８２】
次に、管理用コンピュータ５から要求された計測データを送信するために、要求されている計測データをＮＡＮＤ型フラッシュメモリ１４から読出す処理について、図８及び図９に示すフローチャートと図７を参照して説明する。管理用コンピュータ５は、要求する計測データのうち先頭の計測データの計測時刻（以下、「指定時刻」という。）と最後の計測データの計測時刻とを指定して送信要求を送信する。ＣＰＵ１１は、計測データの送信要求を受信すると、指定時刻から最後の計測データの計測時刻までの期間（以下、「指定期間」という。）に該当する計測データをＮＡＮＤ型フラッシュメモリ１４から読み出し、ＲＡＭ１３内の送信バッファに蓄積してから、入出力Ｉ／Ｆ１７を介して管理用コンピュータ５に送信する。なお、指定時刻として３ヵ月以上前が指定された場合、ＣＰＵ１１は、計測データがない旨を送信する。
【００８３】
図７は、計測データ読出しの処理手順を説明するための、ＮＡＮＤ型フラッシュメモリ１４に記憶されたデータの例である。図５同様、タイムスタンプ領域１０３のタイムスタンプについては時分の要素のみを時刻の形式で記載している。図示しないがアドレス０に１０：２０の計測データが記憶され、その後計測データが記憶されており、管理用コンピュータ５から１２：００〜１２：０３の計測データを要求された状況を例にしている。なお、図７（ｄ），（ｅ）においては、１１：５６〜１２：０４の計測データが記憶されていない。また、図７（ｆ）においては１２：０２以降、図７（ｇ）においては１２：０１以降の計測データが記憶されていない。また、図７（ｈ）においてはアドレス１０１以降のセクタに再度１１：５５からの計測データが記憶されており、図７（ｉ）においては１２：０１〜１２：０２の計測データが記憶されていない。
【００８４】
図８及び図９は、計測データ読出しの処理手順を示すフローチャートである。
【００８５】
指定時刻が絶対時刻Ｔｒに変換され（Ｓ３１）、先頭セクタのタイムスタンプが読み出されて絶対時刻Ｔａに変換される（Ｓ３２）。なお、先頭セクタにデータが無い場合は、データを読み出すことが不可能なので、送信バッファには指定期間分の空データが入力され、計測データ読出しの処理が終了される。
【００８６】
次に、ＴｒとＴａの差としてＸ（＝Ｔｒ−Ｔａ）が算出される（Ｓ３３）。先頭セクタから順に途切れなく計測データが記憶されていた場合は、このＸが指定時刻の計測データを記憶するセクタのアドレスとなっている。例えば、図７（ａ）において、Ｘは１００（１０：２０から１２：００までの経過分数）となり、アドレス１００のセクタには１２：００の計測データが記憶されている。
【００８７】
しかし、途中、停電などにより計測データが記憶されなかった場合や、タイマ１８が調整された場合には、Ｘが指定時刻の計測データが記憶されているセクタのアドレスとならない。従って、ステップＳ３４〜Ｓ４４において、Ｘを仮のアドレスとして、指定時刻の計測データが記憶されているセクタの探索が行われる。
【００８８】
まず、アドレスＸのセクタに計測データが有るか否かが判別される（Ｓ３４）。計測データが無い場合（Ｓ３４：ＮＯ）、アドレスＸが１減少され（Ｓ３５）、ステップＳ３４に戻る。すなわち、計測データが記憶されているセクタまでアドレスを減少させる。例えば、図７（ｆ）において、アドレスＸ（＝１００）のセクタにはデータが記憶されていないので、Ｘは１減少されて９９とされ、再度探索が行われる。
【００８９】
ステップＳ３４でデータが有る場合（Ｓ３４：ＹＥＳ）、アドレスＸのセクタのタイムスタンプが読み出され、絶対時刻Ｔに変換される（Ｓ３６）。この絶対時刻Ｔと指定時刻の絶対時刻Ｔｒとが比較される（Ｓ３７）。
【００９０】
ステップＳ３７においてＴ＝Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが指定時刻と一致した場合、アドレスＸのセクタが指定時刻の計測データが記憶されているセクタである。従って、アドレスＸのセクタに記憶されている計測データが指定時刻の計測データとして、送信バッファに記憶され（Ｓ３８）、ステップＳ５１に進む。例えば、図７（ａ）において、アドレスＸ（＝１００）のセクタのタイムスタンプは１２：００であり、指定時刻と一致するのでアドレス１００のセクタに記憶された計測データが送信バッファに記憶される。
【００９１】
ステップＳ３７においてＴ＞Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが指定時刻より後の場合、アドレスＸを１減少させて（Ｓ３９）、ステップＳ３４に戻る。すなわち、１つ前のアドレス（Ｘ−１）をアドレスＸとして再度探索が行われる。例えば、図７（ｂ），（ｄ）において、アドレスＸ（＝１００）のセクタのタイムスタンプは指定時刻より後なので、Ｘは１減少されて９９とされ、再度探索が行われる。
【００９２】
ステップＳ３７においてＴ＜Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが指定時刻より前の場合、アドレス（Ｘ＋１）に計測データが有るか否かが判別され（Ｓ４０）、計測データが有る場合（Ｓ４０：ＹＥＳ）、アドレス（Ｘ＋１）のセクタのタイムスタンプが読み出され、絶対時刻Ｔ’に変換される（Ｓ４１）。この絶対時刻Ｔ’が指定時刻の絶対時刻Ｔｒ以下であるか否かが判別され（Ｓ４２）、Ｔ’≦Ｔｒの場合（Ｓ４２：ＹＥＳ）、アドレスＸを１増加させて（Ｓ４３）、ステップＳ３４に戻る。
【００９３】
すなわち、アドレスＸとその次のアドレス（Ｘ＋１）のタイムスタンプが、ともに指定時刻の絶対時刻Ｔｒ以下である場合は、次のアドレス（Ｘ＋１）をアドレスＸとして再度探索が行われる。例えば、図７（ｃ）において、アドレスＸ（＝１００）のセクタのタイムスタンプは１１：５９であり指定時刻より前で、次のアドレス１０１のタイムスタンプが１２：００であり指定時刻以前なので、Ｘは１増加されて１０１とされ、再度探索が行われる。
【００９４】
ステップＳ４０において計測データが無い場合（Ｓ４０：ＮＯ）、および、ステップＳ４２においてＴ’＞Ｔｒの場合（Ｓ４２：ＮＯ）、指定時刻の計測データは記憶されていないので、指定時刻の計測データとして空データが送信バッファに記憶され（Ｓ４４）、ステップＳ５１に進む。例えば、図７（ｅ）において、アドレスＸ（＝１００）のセクタのタイムスタンプは１１：５５であり指定時刻より前で、次のアドレス１０１のタイムスタンプが１２：０５であり指定時刻より後なので、指定時刻の計測データとして空データが送信バッファに記憶される。
【００９５】
以上のように、指定時刻の計測データが記憶されているセクタの探索が行われ、指定時刻の計測データ、又は、空データが送信バッファに記憶されると、続いて以下の処理で、指定期間内の計測データを読み出す。
【００９６】
まず、指定期間内の次の時刻（以下、「探索時刻」という。）として、Ｔｒが１増加され（Ｓ５１）、アドレスＸが１増加される（Ｓ５２）。順に途切れなく計測データが記憶されていた場合は、このＸが探索時刻の計測データを記憶するセクタのアドレスとなっている（図７（ａ）アドレス１０１のセクタ参照）。
【００９７】
しかし、探索時刻が現在時刻を超えてしまった場合、アドレスＸのセクタにはまだ計測データが記憶されていない状態となる（図７（ｇ）アドレス１０１のセクタ参照）。また、指定期間に該当する期間の途中でタイマ１８を時間調整のため戻した場合には、アドレスＸのセクタには探索時刻より前の時刻の計測データが記憶されている場合がある（図７（ｈ）アドレス１０１のセクタ参照）。また、同様にタイマ１８を進めた場合や、停電などにより計測データが記憶されなかった場合、アドレスＸのセクタには探索時刻より後の時刻の計測データが記憶されている場合がある（図７（ｉ）アドレス１０１のセクタ参照）。
【００９８】
従って、ステップＳ５１〜Ｓ６３において、Ｘを仮のアドレスとして、探索時刻の計測データが記憶されているセクタの探索が行われる。
【００９９】
まず、指定期間内の計測データ（空データを含む）が全て送信バッファに記憶されたか否かが判別される（Ｓ５３）。全て記憶されていた場合（Ｓ５３：ＹＥＳ）、計測データ読出し処理が終了される。全て記憶されていない場合（Ｓ５３：ＮＯ）は、アドレスＸのセクタに計測データが有るか否かが判別される（Ｓ５４）。
【０１００】
計測データが無い場合（Ｓ５４：ＮＯ）、残りの指定期間分の計測データとして空データが送信バッファに記憶され（Ｓ５５）、計測データ読出しの処理が終了される。例えば、図７（ｇ）において、アドレス１００のセクタの計測データが指定時刻１２：００の計測データとして送信バッファに記憶された後、１増加されたアドレス１０１のセクタに計測データが記憶されていないので、残りの指定期間内、すなわち、１２：０１，１２：０２，１２：０３の計測データとして空データが送信バッファに記憶される。
【０１０１】
計測データが有る場合（Ｓ５４：ＹＥＳ）、アドレスＸのセクタのタイムスタンプが読み出され、絶対時刻Ｔに変換される（Ｓ５６）。この絶対時刻Ｔと絶対時刻Ｔｒとが比較される（Ｓ５７）。
【０１０２】
ステップＳ５７においてＴ＝Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが探索時刻と一致した場合、アドレスＸのセクタが探索時刻の計測データが記憶されているセクタである。従って、アドレスＸのセクタに記憶されている計測データが探索時刻の計測データとして、送信バッファに記憶され（Ｓ５８）、次の探索時刻としてＴｒが１増加され（Ｓ５９）、アドレスＸが１増加され（Ｓ６０）、ステップ５３に戻る。例えば、図７（ａ）において、アドレス１００のセクタの計測データが指定時刻１２：００の計測データとして送信バッファに記憶された後、１増加されたアドレス１０１のセクタのタイムスタンプは１２：０１で探索時刻１２：０１と一致する。従って、アドレス１０１のセクタの計測データが探索時刻１２：０１の計測データとして送信バッファに記憶され、次の探索時刻が１２：０２、アドレスが１０２とされ、再度探索が行われる。
【０１０３】
ステップＳ５７においてＴ＜Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが指定時刻より前の場合、アドレスＸを１増加させて（Ｓ６１）、ステップＳ５３に戻る。すなわち、次のアドレス（Ｘ＋１）をアドレスＸとして再度探索が行われる。例えば、図７（ｈ）において、アドレス１００のセクタの計測データが指定時刻１２：００の計測データとして送信バッファに記憶された後、１増加されたアドレス１０１のセクタのタイムスタンプは１１：５５で探索時刻１２：０１より前である。従って、アドレスを１増加させて１０２とし、再度探索が行われる。
【０１０４】
ステップＳ５７においてＴ＞Ｔｒの場合、すなわち、アドレスＸのセクタのタイムスタンプが指定時刻より後の場合、探索時刻の計測データは記憶されていないとして空データが送信バッファに記憶され（Ｓ６２）、次の探索時刻としてＴｒが１増加され（Ｓ６３）、ステップ５３に戻る。すなわち、次の探索時刻の計測データの探索が行われる。例えば、図７（ｉ）において、アドレス１００のセクタの計測データが指定時刻１２：００の計測データとして送信バッファに記憶された後、１増加されたアドレス１０１のセクタのタイムスタンプは１２：０３で探索時刻１２：０１より後である。従って、探索時刻１２：０１の計測データとして空データが送信バッファに記憶され、探索時刻を１分増加させて１２：０２とし、次の探索時刻の探索が行われる。
【０１０５】
指定期間内の全ての計測データ（空データを含む）が送信バッファに記憶されるか（Ｓ５３：ＹＥＳ）、探索時刻が現在時刻を超えてしまう（Ｓ５４：ＮＯ）まで、ステップＳ５３〜Ｓ６３が繰り返されて、指定期間内の計測データが送信バッファに蓄積される。計測データ読出しの処理が終了されると、送信バッファに蓄積された計測データが管理用コンピュータ５に送信される。
【０１０６】
なお、計測データの読出しは、上記方法に限られず、他の方法で行っても構わない。例えば、ＣＰＵ１１の処理速度が速く探索処理に時間がかからないのであれば、先頭セクタから順に記憶されているタイムスタンプを参照して、指定期間内の計測データを送信バッファに記憶していくようにしてもよい。
【０１０７】
上記のように、本実施形態に係るデータ保存装置では保存先セクタアドレスをＲＡＭ１３に記憶するので、計測データを記憶するＮＡＮＤ型フラッシュメモリ１４において一部の記憶領域に対する書き換えが集中することがなく、ＮＡＮＤ型フラッシュメモリ１４の実用的な寿命を保証することができる。また、計測データとともにタイムスタンプを記憶しているので、計測データの記憶中断後に再開される場合に、このタイムスタンプを利用して次に計測データが記憶されるべきセクタの探索を行うことができる。更に、計測データを読み出す場合にもタイムスタンプを利用して、必要な計測データを早急に読み出すことができる。
【０１０８】
なお、上記実施形態では、本発明を太陽光発電システムのデータ保存装置として適用した場合を例に説明したがこれに限られず、本発明は、大量のデータを保存し書き換える必要があるデータ保存装置において適用することができる。
【図面の簡単な説明】
【０１０９】
【図１】本発明に係るデータ保存装置を太陽光発電システムのデータ保存装置として適用した場合のデータ保存装置の内部構成を示すブロック図である。
【図２】ＮＡＮＤ型フラッシュメモリの各セクタのデータ構造を説明するための図である。
【図３】ＮＡＮＤ型フラッシュメモリに記憶されたデータの例を示す図である。
【図４】ＮＡＮＤ型フラッシュメモリの記憶形式を説明するための図である。
【図５】保存先セクタアドレス探索の処理手順を説明するための、ＮＡＮＤ型フラッシュメモリに記憶されたデータの例である。
【図６】保存先セクタアドレス探索の処理手順を示すフローチャートである。
【図７】計測データ読出しの処理手順を説明するための、ＮＡＮＤ型フラッシュメモリに記憶されたデータの例である。
【図８】計測データ読出しの処理手順を示すフローチャートである。
【図９】計測データ読出しの処理手順を示すフローチャートである。
【符号の説明】
【０１１０】
１  データ保存装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＮＡＮＤ型フラッシュメモリ
１５  パワーコンディショナ入出力Ｉ／Ｆ
１６  計測装置入出力Ｉ／Ｆ
１７  入出力Ｉ／Ｆ
１８  タイマ
１９  ＢＵＳ
２０  パワーコンディショナ
４０〜４４  計測装置
５  管理用コンピュータ
１０１  アドレス領域
１０２  データ領域
１０３  タイムスタンプ領域
１０４  データフラグ領域