(57)【要約】【課題】電動機器本体若しくはその周辺装置からなる電動機器用装置において、現在の日時を表す日時情報を正確に検知できるようにする。【解決手段】電動工具２は、正確な日時情報を有する外部機器８を接続するための端子１６〜１９を備え、制御回路２０は、通信用の端子１８、１９を介して、外部機器８から日時情報を取得する。制御回路２０は、制御モードの切り替え時や異常検出時には、その旨を表す履歴情報を不揮発性メモリ２７に記憶するが、その履歴情報には、外部機器８から取得した日時情報に基づき更新（計測）した日時情報を付与する。また、制御回路２０は、外部機器８から取得した日時情報をバッテリパック４に送信することで、バッテリパック４内で計測されている日時情報を修正させる。【選択図】図１
2014217908.tif 000002
【特許請求の範囲】
【請求項１】
電動機器本体若しくはその周辺装置からなる電動機器用装置であって、
現在の日時を表す日時情報を有する外部機器との間で通信を行う通信手段と、
該通信手段を介して前記外部機器から前記日時情報を取得する日時情報取得手段と、
前記日時情報取得手段にて取得された前記日時情報に基づき制御を行う制御手段と、
を備えたことを特徴とする電動機器用装置。
【請求項２】
現在の日時を計測する計測手段を備え、
前記制御手段は、前記日時情報取得手段にて取得された前記日時情報に基づき、前記計測手段により計測される日時を更新することを特徴とする請求項１に記載の電動機器用装置。
【請求項３】
現在の日時を計測する計測手段を備え、
前記制御手段は、前記計測手段にて計測された日時と、前記日時情報取得手段にて取得された前記日時情報から得られる日時との差分を表す差分情報を生成することを特徴とする請求項１に記載の電動機器用装置。
【請求項４】
前記制御手段は、当該電動機器用装置が他の電動機器用装置に接続されているとき、前記日時情報取得手段にて取得された日時情報を他の電動機器用装置に提供することを特徴とする請求項１〜請求項３のいずれか１項に記載の電動機器用装置。
【請求項５】
前記通信手段は、前記外部機器として、ＧＰＳ受信機、標準電波受信機、通信携帯端末、及び、パーソナルコンピュータの少なくとも一つと通信可能であることを特徴とする請求項１〜請求項４のいずれか１項に記載の電動機器用装置。
【請求項６】
当該電動機器用装置の動作の履歴を記憶する記憶手段を備え、
前記制御手段は、前記動作の履歴を表す履歴情報を、前記日時情報と関連付けて前記記憶手段に格納することを特徴とする請求項１〜請求項５のいずれか１項に記載の電動機器用装置。
【請求項７】
前記制御手段は、前記履歴情報に対応する前記動作の発生回数を計数し、前記記憶手段に前記履歴情報を格納する際には、前記履歴情報に前記動作の発生回数を付与することを特徴とする請求項６に記載の電動機器用装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電動機器本体若しくはその周辺装置からなる電動機器用装置に関する。
【背景技術】
【０００２】
従来、電動工具には、トレーサビリティ管理のために、電動工具の使用時に、締め付けトルク等のデータを収集し、使用日時を表す日時情報と共にメモリに記憶することで、電動工具の使用履歴を残すように構成されたものが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の電動工具によれば、メモリに記憶された履歴情報から、電動工具を用いて組み立てられた製品の締め付け不良を検出するとか、その不良箇所を特定するといったことができる。
【０００５】
しかしながら、メモリに履歴情報の一つとして記憶される日時情報は、電動工具に内蔵された時計（マイコンのタイマ等）から得られるものであるため、日時情報自体が正規のものからずれることがある。
【０００６】
そして、日時情報が正規のものからずれていると、メモリに記憶される履歴情報の信頼性が低下し、トレーサビリティ管理を良好に実行することができない。
また、こうした日時情報のずれによる問題は、履歴情報を残すように構成された電動工具に限らず、日時情報を利用して各種制御を行う制御回路を備えた電動工具や電動作業機であれば同様に発生する。
【０００７】
また、電動工具や電動作業機等の電動機器本体に接続される周辺装置（例えば、電動機器に電力供給を行う電源装置やバッテリパック、電動機器に内蔵されたバッテリやバッテリパックへの充電装置、等）においても同様に発生する。
【０００８】
本発明は、こうした問題に鑑みなされたものであり、電動機器本体若しくはその周辺装置からなる電動機器用装置において、現在の日時を表す日時情報を正確に検知できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１に記載の電動機器用装置においては、現在の日時を表す日時情報を有する外部機器との間で通信を行うための通信手段が備えられている。そして、日時情報取得手段が、その通信手段を介して外部機器から日時情報を取得し、制御手段が、その日時情報取得手段にて取得された日時情報に基づき制御を行う。
【００１０】
従って、請求項１に記載の電動機器用装置によれば、現在の日時を計測する計測手段（時計・タイマ等）を有するか有しないかに関わらず、制御手段は、正確な日時情報を外部機器から取得し、その日時情報を用いた制御を、適正に実行することができる。よって、本発明によれば、制御手段による制御の信頼性を向上することができる。
【００１１】
次に、請求項２に記載の電動機器用装置においては、現在の日時を計測する計測手段を備える。そして、制御手段は、日時情報取得手段にて取得された日時情報に基づき、計測手段により計測される日時を更新する。
【００１２】
このため、請求項２に記載の電動機器用装置によれば、計測手段により計測される日時に誤差があったとしても、その誤差を、日時情報取得手段が取得した日時情報に基づき修正し、計測手段が計測する日時の信頼性を高めることができる。
【００１３】
そして、日時情報取得手段が通信手段を介して外部機器から日時情報を取得できない場合であっても、制御手段は、計測手段により計測される信頼性の高い日時に従い所定の制御動作を実行できるので、制御手段による制御の信頼性をより向上することができる。
【００１４】
一方、請求項３に記載の電動機器用装置においては、現在の日時を計測する計測手段を備え、制御手段は、計測手段にて計測された日時と、日時情報取得手段にて取得された日時情報から得られる日時との差分を表す差分情報を生成する。
【００１５】
このため、請求項３に記載の電動機器用装置によれば、計測手段により計測される日時に誤差がある場合、その誤差が、差分情報として生成されることになる。
従って、日時情報取得手段が通信手段を介して外部機器から日時情報を取得できない場合であっても、制御手段は、計測手段から得られる日時と差分情報とに基づき、現在の日時を正確に検知することができる。
【００１６】
よって、請求項３に記載の電動機器用装置においても、請求項２に記載のものと同様、制御手段による制御の信頼性をより向上することができる。
また、例えば、バッテリ電圧の低下等によって、装置全体が動作を停止した際には、計測手段による日時の計測動作も停止される。このため、請求項３に記載の電動機器用装置によれば、電動機器用装置の動作開始後に生成される差分情報から、電動機器用装置の動作停止時間を推定することもできる。
【００１７】
次に、請求項４に記載の電動機器用装置においては、当該電動機器用装置が他の電動機器用装置に接続されているとき、制御手段が、日時情報取得手段にて取得された日時情報を他の電動機器用装置に提供する。
【００１８】
従って、請求項４に記載の電動機器用装置によれば、日時情報取得手段が外部機器から取得した正確な日時情報を、他の電動機器用装置に提供することができ、他の電動機器用装置側では、その提供された正確な日時情報に基づく制御を実行できるようになる。
【００１９】
また、請求項２又は請求項３に記載の電動機器用装置のように、他の電動機器用装置が、現在の日時を計測する計測手段を備えている場合には、計測手段による計測日時を修正させるか、或いは、計測手段による計測日時の誤差を差分情報として生成させることができる。
【００２０】
次に、請求項５に記載の電動機器用装置においては、通信手段は、外部機器として、ＧＰＳ受信機、標準電波受信機、通信携帯端末、及び、パーソナルコンピュータの少なくとも一つと通信可能である。
【００２１】
ＧＰＳ受信機、標準電波受信機、通信携帯端末、パーソナルコンピュータ（特にネットワークに接続されたもの）は、通常、正確な日時情報を有する。
このため、請求項５に記載の電動機器用装置によれば、これらの機器から正確な日時情報を取得し、制御に用いる日時情報の信頼性を高めることができる。
【００２２】
次に、請求項６に記載の電動機器用装置においては、当該電動機器用装置の動作の履歴を記憶する記憶手段を備える。そして、制御手段は、その動作の履歴を表す履歴情報を、日時情報と関連付けて記憶手段に格納する。
【００２３】
従って、記憶手段に対し履歴情報に関連付けて格納される日時情報は、日時情報取得手段が外部機器から取得した正確な日時情報に対応するものとなる。
よって、当該電動機器用装置の使用者は、記憶手段に記憶された履歴情報から、電動機器用装置の動作履歴を、その動作日時と共に正確に把握することができ、当該電動機器用装置を含む電動機器システムのトレーサビリティ管理を適正に行うことができる。
【００２４】
次に、請求項７に記載の電動機器用装置において、制御手段は、履歴情報に対応する動作の発生回数を計数し、記憶手段に履歴情報を格納する際には、履歴情報に動作の発生回数を付与する。
【００２５】
このため、記憶手段の記憶容量の制限から、最新の履歴情報を書き込む際に、古い履歴情報が消去されたとしても、記憶手段に記憶された履歴情報から、その履歴情報に対応する動作の発生回数を検知することができる。
【００２６】
よって、請求項７に記載の電動機器用装置によれば、記憶手段の記憶容量の制限により、電動機器システムのトレーサビリティ管理を実施できなくなるのを防止することができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態の電動工具、バッテリパック、及び外部機器の構成を表すブロック図である。
【図２】図１のバッテリパックに接続される充電器の構成を表すブロック図である。
【図３】電動工具の制御回路にて実行される制御処理を表すフローチャートである。
【図４】電動工具の不揮発性メモリに格納される履歴情報を表す説明図である。
【図５】図３に示すモード設定切り替え処理を表すフローチャートである。
【図６】図３に示す通信処理を表すフローチャートである。
【図７】図３に示す異常状態確認処理を表すフローチャートである。
【図８】図３に示すメモリ操作処理を表すフローチャートである。
【図９】図８に示す書き込みデータ用意処理を表すフローチャートである。
【図１０】図３に示す取得日時カウントアップ処理を表すフローチャートである。
【図１１】図３に示すスリープ処理を表すフローチャートである。
【図１２】充電器の制御回路にて実行される制御処理を表すフローチャートである。
【図１３】充電器の不揮発性メモリに格納される履歴情報を表す説明図である。
【図１４】図１２に示すバッテリ接続確認処理を表すフローチャートである。
【図１５】図１２に示す異常状態確認処理を表すフローチャートである。
【図１６】図１２に示すメモリ操作処理にて実行される書き込みデータ用意処理を表すフローチャートである。
【図１７】図１２に示すスリープ処理を表すフローチャートである。
【図１８】バッテリパックの制御回路にて実行される制御処理を表すフローチャートである。
【図１９】バッテリパックの不揮発性メモリに格納される履歴情報を表す説明図である。
【図２０】図１８に示す通信処理を表すフローチャートである。
【図２１】図１８に示す異常状態確認処理を表すフローチャートである。
【図２２】図１８に示すメモリ操作処理にて実行される書き込みデータ用意処理を表すフローチャートである。
【図２３】図１８に示すスリープ処理を表すフローチャートである。
【図２４】電動工具の不揮発性メモリに格納される履歴情報の他の例を表す説明図である。
【図２５】商用電源から電源供給を受けて動作する電動工具への外部機器の接続状態を表すブロック図である。
【図２６】バッテリパックへの外部機器の接続状態を表すブロック図である。
【図２７】外部機器から日時情報を取得するのに用いられるアダプタを表す説明図である。
【発明を実施するための形態】
【００２８】
以下に本発明の実施形態を図面と共に説明する。
［電動工具システムの構成］
本実施形態は、電動工具２、電動工具２に電力供給を行うバッテリパック４、及び、バッテリパック４への充電を行う充電器６、にて構成される電動工具システムに本発明を適用したものである。そして、これら電動工具２、バッテリパック４、及び、充電器６は、それぞれ、本発明の電動機器用装置として機能する。
【００２９】
図１に示すように、本実施形態の電動工具２は、バッテリパック４を着脱自在に装着可能に構成されており、バッテリパック４から電源供給を受けて動作する。
電動工具２には、バッテリパック４に接続するための端子として、バッテリ端子１１、グランド端子１２、及び、通信端子１３、１４が備えられており、動力源として、直流モータからなる駆動モータ（以下、単にモータという）２１が備えられている。
【００３０】
電動工具２にバッテリパック４が装着された際、バッテリ端子１１は、バッテリパック４のバッテリ端子３１を介してバッテリ３６の正極側に接続され、グランド端子１２は、バッテリパック４のグランド端子３２を介してバッテリ３６の負極側に接続される。
【００３１】
また、電動工具２内では、バッテリ端子１１は、使用者により操作されるトリガスイッチ２３を介してモータ２１の一端に接続されており、グランド端子１２は、駆動回路２４を介して、モータ２１の他端に接続されている。なお、モータ２１には、モータ２１のオフ時に誘発する逆方向の電力を回生するためのダイオード（所謂フライホイールダイオード）２２が並列接続されている。
【００３２】
電動工具２には、バッテリパック４を接続するとトリガスイッチ２３のオン・オフに関係なく、バッテリパック４から電源供給を受け、内部回路駆動用の電源電圧（直流定電圧）を生成するレギュレータ２８、及び、レギュレータ２８から電源供給を受けてモータ２１を駆動制御する制御回路２０が備えられている。
【００３３】
制御回路２０は、ＣＰＵを中心に構成されたマイクロコントローラ（ＭＣＵ）にて構成されており、駆動回路２４を介してモータ２１を駆動制御するための制御プログラムや制御データが予め格納されたＲＯＭ２５、及び、各種データを一時的に記憶するためのＲＡＭ２６を備える。
【００３４】
そして、制御回路２０は、駆動回路２４を介してモータ２１を駆動制御する際、通信端子１３、１４を介してバッテリパック４内の制御回路４０と通信を行うことで、バッテリパック４からバッテリ温度、バッテリ電圧、バッテリ電流を取り込み、制御に利用する。
【００３５】
また、制御回路２０には、電動工具２の動作履歴を表す履歴情報を記憶するための不揮発性メモリ２７、及び、モータ２１駆動時の制御モード（例えば、高速／低速）を設定するためのモード切り替えスイッチ２９が接続されている。
【００３６】
なお、本実施形態で使用される不揮発性メモリ２７は、後述の不揮発性メモリ４５、６９を含めて、データの書き換えが可能なＥＥＰＲＯＭ若しくはフラッシュメモリにて構成されている。
【００３７】
そして、制御回路２０は、モード切り替えスイッチ２９を介して使用者により設定された制御モードに従いモータ２１を駆動制御し、その制御モードの切り替え時や異常検出時には、その旨を表す履歴情報を、不揮発性メモリ２７に格納する。
【００３８】
また、電動工具２には、外部機器８に接続するための端子１６、１７、１８、１９が設けられている。
このうち、端子１６、１７は、バッテリ端子１１及びグランド端子１２にそれぞれ接続されて、バッテリパック４から外部機器８への電源供給を中継するためのものであり、端子１８、１９は、制御回路２０を、外部機器８と通信可能に接続するためのものである。
【００３９】
そして、制御回路２０は、端子１８、１９を介して外部機器８と通信を行うことで、外部機器８から現在の日時情報を取得する。
なお、外部機器８は、ＧＰＳ受信機としてのＧＰＳモジュール８５、及び、標準電波受信機としての標準電波受信モジュール８６を備えた携帯通信端末（例えば、携帯電話、スマートフォン等）である。
【００４０】
外部機器８は、電動工具２や後述の充電器６（図２参照）に対し、端子８１、８２、８３、８４を介して接続可能である。
そして、外部機器８には、端子８１、８２を介して、電動工具２若しくは充電器６からの供給電力を取り込み、内部回路駆動用の電源電圧を生成するレギュレータ８７、及び、レギュレータ８７にて生成された電源電圧を受けて動作する制御回路９０が備えられている。
【００４１】
この制御回路９０は、電動工具２の制御回路２０と同様、ＭＣＵにて構成されており、ＲＯＭ８８及びＲＡＭ８９を備える。そして、制御回路９０は、端子８３、８４を介して、電動工具２の制御回路２０や充電器６内の制御回路７０（図２参照）との間で通信を行い、ＧＰＳモジュール８５や標準電波受信モジュール８６を介して得られる現在の日時を表す日時情報を提供する。
【００４２】
次に、バッテリパック４には、上述したバッテリ端子３１、グランド端子３２に加えて、通信端子３３、３４が備えられている。
この通信端子３３、３４は、バッテリパック４を電動工具２若しくは充電器６に装着した際、電動工具２の通信端子１３、１４若しくは充電器６の通信端子５３、５４（図２参照）に接続される。
【００４３】
従って、バッテリパック４内の制御回路４０は、通信端子３３、３４を介して、電動工具２内の制御回路２０若しくは充電器６内の制御回路７０との間で通信が可能である。
なお、バッテリパック４内の制御回路４０と、電動工具２若しくは充電器６の制御回路２０、７０との間の通信は、バッテリパック４がスレーブ、電動工具２若しくは充電器６がマスタとなり、電動工具２若しくは充電器６の制御の下に行われる。
【００４４】
また、バッテリパック４は、図２に示す充電器６に装着した際、バッテリ端子３１及びグランド端子３２が、充電器６側のバッテリ端子５１及びグランド端子５２に接続されることにより、充電器６からバッテリ３６を充電できるようにされている。
【００４５】
また、バッテリパック４には、充電器６に装着された際に、充電器６の電源端子５５に接続されて、充電器６から電源電圧Ｖｃｃの供給を受ける電源端子３５が設けられている。そして、この電源端子３５には、充電器６からの供給電圧により、バッテリパック４が充電器６に装着されたことを検出する充電器検出回路４３が接続されている。
【００４６】
次に、バッテリパック４内では、バッテリ３６の正極側とバッテリ端子３１とを接続する電源ラインに、バッテリ電圧を測定する電圧測定回路３７が設けられている。また、バッテリ３６の負極側とグランド端子３２とを接続するグランドラインには、バッテリ３６に流れるバッテリ電流（詳しくはバッテリ３６への充電電流及びバッテリ３６からの放電電流）を検出する電流測定回路３８が設けられている。
【００４７】
また、バッテリパック４には、バッテリ３６の温度を検出する温度測定回路３９、バッテリ３６から電源供給を受けて内部回路駆動用の電源電圧（直流定電圧）を生成するレギュレータ４４、及び、不揮発性メモリ４５も設けられている。
【００４８】
次に、バッテリパック４内の制御回路４０は、電動工具２や外部機器８の制御回路２０、９０と同様、ＭＣＵにて構成されており、ＲＯＭ４１及びＲＡＭ４２を備える。
そして、制御回路４０は、通信端子３３、３４を介して電動工具２からモータ２１の駆動開始が通知されると、電圧測定回路３７、電流測定回路３８、及び温度測定回路３９を介して、バッテリ電圧、バッテリ電流、バッテリ温度を検出し、その検出結果を電動工具２の制御回路２０に通知する。
【００４９】
また、制御回路４０は、充電器検出回路４３を介してバッテリパック４が充電器６に装着されていることを検知した際にも、上記各測定回路３７〜３９を介して、バッテリ電圧、バッテリ電流、バッテリ温度を検出し、充電器６の制御回路７０からの要求に従い、これら検出結果を通知する。
【００５０】
また、制御回路４０は、起動中、バッテリパック４の動作を監視し、その監視結果である動作履歴を履歴情報として不揮発性メモリ４５に格納する。
次に、充電器６には、図２に示すように、バッテリパック４が装着された際に、バッテリパック４のバッテリ端子３１、グランド端子３２、通信端子３３、３４、及び電源端子３５に接続される、バッテリ端子５１、グランド端子５２、通信端子５３、５４、及び電源端子５５が備えられている。
【００５１】
また、充電器６には、電源プラグ６１を介して商用電源から入力される交流電圧を整流・平滑する整流平滑回路６２と、整流平滑回路６２からの出力によりバッテリ３６への充電電圧及び内部回路駆動用の電源電圧（直流定電圧）Ｖｃｃをそれぞれ生成するメインコンバータ６３及びサブコンバータ６４が備えられている。
【００５２】
そして、サブコンバータ６４にて生成された電源電圧Ｖｃｃは、制御回路９０を始めとする充電器６の内部回路に供給され、更に、電源端子５３を介してバッテリパック４にも出力される。
【００５３】
また、メインコンバータ６３の出力は、バッテリ端子５１に接続されており、その接続経路（換言すればバッテリ３６への正極側の充電経路）には、充電電圧を測定するための電圧測定回路６５、及び、過電圧保護回路６６が設けられている。
【００５４】
なお、過電圧保護回路６６は、充電電圧が過大になったときに、メインコンバータ６３内のスイッチング素子をＰＷＭ制御するＰＷＭ制御ＩＣ６７に停止指令を出力することで、バッテリ３６への充電を停止させるためのものである。
【００５５】
また、グランド端子５２からメインコンバータ６３及びサブコンバータ６４に至る負極側の充電経路には、電流測定回路６８が設けられている。そして、この電流測定回路６８及び電圧測定回路６５による測定結果は、制御回路７０に入力される。
【００５６】
制御回路７０は、電動工具２やバッテリパック４の制御回路２０、４０と同様、ＭＣＵにて構成されており、ＲＯＭ７１及びＲＡＭ７２を備える。
そして、制御回路７０は、通信端子５３、５４を介して、バッテリパック４からバッテリ３６の状態（バッテリ温度等）を取り込み、その取り込んだバッテリ状態、及び、電流測定回路６８、電圧測定回路６５により検出された充電電流及び充電電圧に基づき、ＰＷＭ制御ＩＣ６７によるメインコンバータ６３の制御パラメータ（駆動デューティ等）を設定する。
【００５７】
また、制御回路７０には、充電器６の動作履歴を表す履歴情報を記憶するための不揮発性メモリ６９が接続されており、制御回路７０は、バッテリ３６への充電動作など、各種動作履歴を履歴情報として不揮発性メモリ６９に格納する。
【００５８】
また、充電器６には、外部機器８に接続するための端子５６、５７、５８、５９が設けられている。
このうち、端子５６、５７は、バッテリ端子５１及びグランド端子５２にそれぞれ接続されて、バッテリパック４に供給する充電電圧を外部機器８にも供給できるようにするためのものであり、端子５８、５９は、制御回路７０を、外部機器８と通信可能に接続するためのものである。
【００５９】
そして、制御回路７０は、端子５８、５９を介して外部機器８と通信を行うことで、外部機器８から現在の日時情報を取得する。
以上説明したように、電動工具２、バッテリパック４及び充電器６において、制御回路２０、４０及び７０は、それぞれ、モータ２１の駆動制御、バッテリ３６の充放電制御（詳しくはバッテリ充・放電時の状態監視）、及び、バッテリ３６に対する充電制御を実行する。
【００６０】
また、各制御回路２０、４０、７０は、これら各制御のための制御処理実行時に、各装置（電動工具２、バッテリパック４、充電器６）の動作状態を監視し、動作状態が変化したときや異常が発生したときには、履歴を残すべきイベントが発生したものと判断して、その旨を表す履歴情報を不揮発性メモリ２７、４５、６９に格納する。
【００６１】
また、各制御回路２０、４０、７０は、不揮発性メモリ２７、４５、６９に履歴情報を格納する際、その履歴情報に対応した動作発生時の日時を表す日時情報を、履歴情報に付与する。
【００６２】
そして、その日時情報に誤りがあると、各装置のトレーサビリティ管理を正確に行うことができないため、各制御回路２０、４０、７０は、外部機器８から日時情報を取得する。なお、バッテリパック４は、外部機器８に直接接続することができないので、電動工具２又は充電器６を介して、外部機器８から日時情報を取得する。
【００６３】
次に、電動工具２、バッテリパック４及び充電器６の制御回路２０、４０、７０において実行される制御処理について説明する。
［電動工具２の制御回路２０による制御処理］
図３に示すように、電動工具２の制御回路２０においては、レギュレータ２８から電源が投入されて、制御処理を開始すると、Ｓ１００（Ｓはステップを表す）にて、モータ２１の駆動制御に用いられる各種パラメータや後述する各種フラグを初期設定する初期化処理を実行する。
【００６４】
また、この初期化処理では、後述の処理で新たな履歴情報を生成して不揮発性メモリ２７に書き込むために、現在不揮発性メモリ２７に格納されている履歴情報の中から、電動工具２の動作履歴として保存される異常状態の検出回数を読み込む。
【００６５】
つまり、電動工具２においては、制御回路２０のスリープ状態への移行時、バッテリ電圧の低下時、モータ２１の過負荷運転時、モータ２１の過熱時、バッテリ３６の状態異常時、及び、制御モードの切り替え時に、それぞれ、図４に示す記憶内容１〜６の履歴情報を不揮発性メモリ２７に格納するようにされている。
【００６６】
そして、制御回路２０のスリープ状態への移行時には、履歴情報として、バッテリ電圧の低下、モータ２１の過負荷、モータ２１の過熱（高温）、及び、バッテリ異常の過去の検出回数を表す回数情報「１」に、日時情報「７」を付与したもの（記憶内容１）が、不揮発性メモリ２７に格納される。
【００６７】
また、回数情報「１」は、電圧低下検出時、過負荷検出時、高温検出時、バッテリ異常検出時、及び、制御モードの切り替え時にも、履歴情報として、不揮発性メモリ２７に格納される。
【００６８】
これは、不揮発性メモリ２７に履歴情報を書き込む際に、不揮発性メモリ２７の容量不足によって、過去の履歴情報を消去したとしても、最新の履歴情報から、過去の異常内容と発生回数を検知できるようにするためである。
【００６９】
このため、Ｓ１００の初期化処理では、不揮発性メモリ２７に格納された最新の履歴情報から上記各異常状態の検出回数を読み込むことで、その後、上記各異常検出時に検出回数を更新し、その更新された検出回数を付与した履歴情報を、不揮発性メモリ２７に保存できるようにしている。
【００７０】
なお、電圧低下検出時、過負荷検出時、高温検出時、バッテリ異常検出時、及び、制御モードの切り替え時に、不揮発性メモリ２７に格納される履歴情報は、図４に記憶内容２〜６として記載されている通りである。
【００７１】
すなわち、電圧低下検出時には、そのときの制御モード、モータ駆動時間、及びバッテリ電圧を表す情報「２」に、回数情報「１」と日時情報「７」を付与したもの（記憶内容２）が、履歴情報として不揮発性メモリ２７に格納される。
【００７２】
また、過負荷検出時には、そのときの制御モード、電流分布、及び、モータ駆動時間を表す情報「３」に、回数情報「１」と日時情報「７」を付与したもの（記憶内容３）が、履歴情報として不揮発性メモリ２７に格納される。
【００７３】
また、高温検出時には、過負荷検出時の情報「３」と同様、そのときの制御モード、電流分布、及び、モータ駆動時間を表す情報「４」に、回数情報「１」と日時情報「７」を付与したもの（記憶内容４）が、履歴情報として不揮発性メモリ２７に格納される。
【００７４】
また、バッテリ異常検出時には、そのときの制御モード、コントローラ（つまり制御回路２０）の温度、バッテリ３６の状態情報、及び、電流分布を表す情報「５」に、回数情報「１」と日時情報「７」を付与したもの（記憶内容５）が、履歴情報として不揮発性メモリ２７に格納される。
【００７５】
また、制御モードの切り替え時には、切り替え後の制御モード、コントローラ温度、及び、バッテリ電圧を表す情報「６」に、回数情報「１」と日時情報「７」を付与したもの（記憶内容６）が、履歴情報として不揮発性メモリ２７に格納される。
【００７６】
次に、Ｓ１１０では、トリガスイッチ２３、モード切り替えスイッチ２９、回転方向切り替えスイッチ（図示せず）等からのスイッチ信号を確認し、続くＳ１２０にて、バッテリ電圧、コントローラ温度、モータ電流、トリガスイッチ２３の引き量等のＡＤ変換値を取り込む。
【００７７】
そして、Ｓ１３０では、モード切り替えスイッチ２９の切り替え状態に基づき制御モードを設定する制御モード設定切り替え処理を実行し、続くＳ１４０では、外部機器８及びバッテリパック４との間で通信を行う通信処理を実行する。
【００７８】
また、Ｓ１５０では、上述したバッテリ電圧等の異常状態を確認する異常状態確認処理を実行し、Ｓ１６０にて、モータ２１を駆動制御するモータ制御処理を実行する。
なお、モータ制御処理では、異常状態確認処理にて、異常が検出されると、モータ２１の駆動を停止し、その後、使用者によるトリガスイッチ２３の操作が終了するまで、駆動停止状態を保持する。
【００７９】
次に、Ｓ１７０では、不揮発性メモリ２７への履歴情報の書き込みを行うメモリ操作処理を実行し、続くＳ１８０では、外部機器８から取得した日時情報に基づき、現在の日時を更新（カウントアップ）する、取得日時カウントアップ処理を実行する。
【００８０】
そして、最後に、Ｓ１９０にて、トリガスイッチ２３等のスイッチ操作がない状態が所定時間以上経過しているときにスリープ状態に移行し、スリープ状態への移行後にトリガスイッチ２３等のスイッチ操作があるとウェイクアップする、スリープ処理を実行する。
【００８１】
なお、スリープ処理実行後は、再度Ｓ１１０に移行することにより、上記一連の処理を繰り返し実行する。
次に、上記一連の処理の内、不揮発性メモリ２７への履歴情報の書き込みに関連する処理について説明する。
【００８２】
図５に示すように、Ｓ１３０のモード設定切り替え処理では、まずＳ１３１にて、使用者によるモード切り替えスイッチ２９の操作があったか否か判断する。
そして、モード切り替えスイッチ２９の操作がなければ、当該モード設定切り替え処理を終了し、モード切り替えスイッチ２９の操作があれば、Ｓ１３２に移行して、モータ２１の制御モードの設定を高速若しくは低速に切り替える。
【００８３】
また、制御モードの切り替え後は、その切り替え動作を動作履歴として残すために、Ｓ１３３にて、書き込み要求フラグをセットし、当該モード設定切り替え処理を終了する。
次に、図６に示すように、Ｓ１４０の通信処理では、まずＳ２０１にて、外部機器８から通信があったか否かを判断する。
【００８４】
そして、外部機器８から通信があれば、Ｓ２０２に移行して、外部機器８からの送信データの中から、現在の日時情報を取得し、Ｓ２０３にて、外部日時取得完了フラグをセットする。また、続くＳ２０４では、外部日時受け渡し完了フラグをクリアし、Ｓ２０９に移行する。
【００８５】
なお、外部日時受け渡し完了フラグは、外部機器８から取得した日時情報をバッテリパック４へ通知したか否かを表すフラグであり、このフラグがクリアされている場合、日時情報の受け渡しは完了していないことを表している。
【００８６】
次に、Ｓ２０１にて、外部機器８からの通信はないと判断されると、Ｓ２０５に移行して、外部日時取得完了フラグはセットされているか否かを判断する。
そして、外部日時取得完了フラグがセットされていれば、既に外部機器８から日時情報を取得しているので、Ｓ２０９に移行し、外部日時取得完了フラグがセットされていなければ、Ｓ２０６に移行する。
【００８７】
Ｓ２０６では、バッテリ日時取得完了フラグがセットされているか否かを判断することにより、バッテリパック４から日時情報を取得したか否かを判断する。そして、バッテリ日時完了フラグがセットされていれば、バッテリパック４から日時情報が取得されているので、Ｓ２０９に移行する。
【００８８】
また、バッテリ日時完了フラグがセットされていなければ、日時情報は、外部機器８からもバッテリパック４からも取得されていないので、Ｓ２０７に移行し、バッテリパック４に日時情報を要求することで、バッテリパック４から現在の日時情報を取得する。
【００８９】
そして、続くＳ２０８では、バッテリ日時取得完了フラグをセットし、Ｓ２０９に移行する。
なお、外部機器８から日時情報を取得できていないときに、バッテリパック４から日時情報を取得するのは、バッテリパック４ではバッテリ３６が放電していない限り、制御回路４０がバッテリ３６からの電源供給を受けて日時の計測を行っているからである。
【００９０】
つまり、電動工具２は、バッテリパック４が装着されていなければ完全に動作を停止し、日時を計測することができないことから、バッテリパック４が装着されて制御回路２０が起動した直後には、少なくともバッテリパック４から日時情報を取得できるようにしているのである。
【００９１】
次に、Ｓ２０９では、外部日時受け渡し完了フラグがセットされているか否かを判断し、外部日時受け渡し完了フラグがセットされていれば、Ｓ２１２に移行し、外部日時受け渡し完了フラグがセットされていなければ、Ｓ２１０に移行する。
【００９２】
Ｓ２１０では、外部機器８から取得した日時情報に基づく現在の日時情報をバッテリパック４へ通知することで、バッテリパック４にて計測されている日時情報を、正確な日時情報に更新させる。そして、その後は、Ｓ２１１にて、外部日時受け渡し完了フラグをセットし、Ｓ２１２に移行する。
【００９３】
Ｓ２１２では、バッテリ状態取得フラグがセットされているか否かを判断する。このバッテリ状態取得フラグは、以降の処理で、バッテリパック４からバッテリ温度やバッテリ電圧等のバッテリ状態を表すバッテリ状態情報が取得された際にセットされるフラグであり、バッテリ状態取得フラグがセットされていなければ、Ｓ２１３に移行する。
【００９４】
Ｓ２１３では、バッテリパック４にバッテリ状態情報を要求することにより、バッテリパック４からバッテリ状態情報を取得する。そして、続くＳ２１４では、その取得したバッテリ状態情報に基づき、バッテリ３６に異常があるか否かを判断し、バッテリ３６に異常があれば、Ｓ２１５に移行して、バッテリ異常フラグをセットする。そして、その後にＳ２１６に移行して、バッテリ状態取得フラグをセットし、当該通信処理を終了する。
【００９５】
Ｓ２１４にて、バッテリ３６に異常はないと判断されると、当該通信処理を終了する。
また、Ｓ２１２にて、バッテリ状態取得フラグがセットされていると判断された場合にも、当該通信処理を終了する。
【００９６】
次に、図７に示すように、Ｓ１５０の異常状態確認処理では、まずＳ１５１にて、上述した電圧低下、過負荷、高温、バッテリ異常等の異常状態が発生しているかどうかを確認し、Ｓ１５２に移行する。
【００９７】
Ｓ１５２では、異常検出中フラグがセットされているか否かを判断し、異常検出中フラグがセットされていなければ、Ｓ１５３にて、Ｓ１５１では何らかの異常状態が検出されたか否かを判断する。
【００９８】
Ｓ１５３にて、異常状態が検出されていると判断されると、その検出した異常状態を電動工具２の動作履歴として残すために、Ｓ１５４に移行して、書き込み要求フラグをセットし、続くＳ１５５にて、異常検出中フラグをセットする。
【００９９】
そして、Ｓ１５３にて異常状態が検出されていないと判断されるか、或いは、Ｓ１５５にて異常検出中フラグをセットすると、当該異常状態確認処理を終了する。
一方、Ｓ１５２にて、異常検出中フラグがセットされていると判断された場合には、Ｓ１５６に移行して、使用者によるトリガスイッチ２３の操作が終了したか否かを判断する。
【０１００】
そして、トリガスイッチ２３の操作が終了していなければ、当該異常状態確認処理を終了する。また、トリガスイッチ２３の操作が終了していれば、Ｓ１５７にて、異常検出中フラグをクリアし、Ｓ１５８にて、バッテリ異常フラグ及びバッテリ状態取得フラグをクリアした後、当該異常確認処理を終了する。
【０１０１】
なお、このように、使用者によるトリガスイッチ２３の操作が終了しているときに上記各フラグをクリアするのは、使用者によるトリガスイッチ２３の操作が一旦終了し、その後、トリガスイッチ２３が操作された際には、Ｓ１６０のモータ制御処理にて、モータ２１が駆動されるからである。
【０１０２】
つまり、本実施形態では、トリガスイッチ２３の操作が終了した際に、上記各フラグをクリアすることで、次のモータ駆動時にも、異常状態の検出を実施できるようにしているのである。
【０１０３】
そして、本実施形態では、異常状態が検出された際には、書き込み要求フラグがセットされるので、異常状態が検出される度に、その旨を表す履歴情報が検出回数と共に不揮発性メモリ２７に記憶されることになる。
【０１０４】
次に、図８に示すように、Ｓ１７０のメモリ操作処理では、まずＳ１７１にて、書き込み要求フラグがセットされているか否かを判断する。
そして、書き込み要求フラグがセットされていなければ、当該メモリ操作処理を終了し、書き込み要求フラグがセットされていれば、Ｓ１７２に移行して、不揮発性メモリ２７に、新たな履歴情報を書き込み可能な領域（書き込み可能領域）があるか否かを判断する。
【０１０５】
不揮発性メモリ２７に履歴情報の書き込み可能領域がない場合には、Ｓ１７３にて、不揮発性メモリ２７の記憶領域の全域若しくは一部を消去した後、Ｓ１７４に移行し、不揮発性メモリ２７に書き込み可能領域がある場合には、そのままＳ１７４に移行する。
【０１０６】
Ｓ１７４では、不揮発性メモリ２７に履歴情報を書き込むための書き込みデータを用意し、Ｓ１７５にて、その用意した書き込みデータ（つまり履歴情報）を、不揮発性メモリ２７に格納する。そして、最後に、Ｓ１７６にて、書き込み要求フラグをクリアし、当該メモリ操作処理を終了する。
【０１０７】
ここで、Ｓ１７４の書き込みデータ用意処理は、図９に示す手順で実行される。
すなわち、書き込みデータ用意処理では、まずＳ２２０にて、Ｓ１９０のスリープ処理にてスリープ状態への移行時にセットされるスリープ移行要求フラグが、セットされているか否かを判断する。
【０１０８】
そして、スリープ移行要求フラグがセットされていれば、Ｓ２２１に移行して、図４に示した記憶内容１を構成している各情報（電圧低下回数、過負荷検出回数、高温検出回数、バッテリ異常検出回数、現在日時を表す日時情報）の最新値を取得し、Ｓ２２２にて、スリープ移行許可フラグをセットした後、当該書き込みデータ用意処理を終了する。
【０１０９】
次に、Ｓ２２０にて、スリープ移行要求フラグはセットされていないと判断されると、Ｓ２３０にて、Ｓ１５０の異常状態確認処理にて、バッテリ電圧の低下が検出されているか否かを判断する。
【０１１０】
そして、バッテリ電圧の低下が検出されていれば、Ｓ２３１に移行して、電圧低下検出回数をインクリメント（＋１）し、続くＳ２３２にて、図４に示した記憶内容２を構成している情報（モード設定、モータ駆動時間、バッテリ電圧、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１１１】
次に、Ｓ２３０にて、バッテリ電圧の低下は検出されていないと判断された場合には、Ｓ２４０に移行し、Ｓ１５０の異常状態確認処理にて、モータ２１の過負荷運転が検出されているか否かを判断する。
【０１１２】
そして、モータ２１の過負荷運転が検出されていれば、Ｓ２４１に移行して、過負荷検出回数をインクリメント（＋１）し、続くＳ２４２にて、図４に示した記憶内容３を構成している情報（モード設定、電流分布、モータ駆動時間、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１１３】
また次に、Ｓ２４０にて、モータ２１の過負荷は検出されていないと判断された場合には、Ｓ２５０に移行し、Ｓ１５０の異常状態確認処理にて、モータ２１の過熱（高温）が検出されているか否かを判断する。
【０１１４】
そして、モータ２１の過熱（高温）が検出されていれば、Ｓ２５１に移行して、高温検出回数をインクリメント（＋１）し、続くＳ２５２にて、図４に示した記憶内容４を構成している情報（モード設定、電流分布、モータ駆動時間、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１１５】
また、Ｓ２５０にて、モータ２１の過熱（高温）は検出されていないと判断された場合には、Ｓ２６０に移行し、Ｓ１５０の異常状態確認処理にて、バッテリ異常が検出されているか否かを判断する。
【０１１６】
そして、バッテリ異常が検出されていれば、Ｓ２６１に移行して、バッテリ異常検出回数をインクリメント（＋１）し、続くＳ２６２にて、図４に示した記憶内容５を構成している情報（モード設定、コントローラ温度、バッテリの状態情報、電流分布、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１１７】
また、Ｓ２６０にて、モータ異常は検出されていないと判断された場合には、Ｓ２７０に移行し、Ｓ１３０のモード設定切り替え処理にて、制御モードの切り替えが行われたか否かを判断する。
【０１１８】
そして、制御モードの切り替えが行われていれば、Ｓ２７２に移行して、図４に示した記憶内容６を構成している情報（モード設定、コントローラ温度、バッテリ電圧、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。また、Ｓ２７０にて、制御モードの切り替えは行われていないと判断された場合にも、当該書き込みデータ用意処理を終了する。
【０１１９】
このように、Ｓ１７０のメモリ操作処理では、書き込み要求フラグがセットされているとき、Ｓ１７４の書き込みデータ用意処理を実行することにより、不揮発性メモリ２７に書き込むべき履歴情報（図４に示す記憶内容１〜６）を構成する各種情報を収集する。そして、続くＳ１７５にて、その収集した各種情報に基づき、履歴情報を生成し、不揮発性メモリ２７に格納する。
【０１２０】
次に、図１０に示すように、Ｓ１８０の取得日時カウントアップ処理では、まずＳ１８１にて、第１更新完了フラグがセットされているか否かを判断する。
また、第１更新完了フラグがセットされていなければ、Ｓ１８２に移行し、Ｓ１４０の通信処理にて外部機器８から日時情報を取得した際にセットされる外部日時取得完了フラグがセットされているか否かを判断する。
【０１２１】
そして、Ｓ１８２にて、外部日時取得完了フラグはセットされていると判断されると、Ｓ１８３に移行して、制御回路２０が認識している現在の日時情報を、外部機器８から取得した最新の日時情報に書き換え、Ｓ１８４に移行する。
【０１２２】
Ｓ１８４では、第１更新完了フラグをセットし、続くＳ１８９にて、Ｓ１８４にて更新された日時情報をカウントアップすることで、現在の日時情報を更新し、当該取得日時カウントアップ処理を終了する。
【０１２３】
なお、Ｓ１８９による日時情報のカウントアップは、Ｓ１８１にて、第１更新完了フラグがセットされていると判断された場合にも実行される。
次に、Ｓ１８２にて、外部日時取得完了フラグはセットされていないと判断された場合には、Ｓ１８５に移行し、第２更新完了フラグがセットされているか否かを判断する。
【０１２４】
そして、Ｓ１８５にて、第２更新完了フラグはセットされていないと判断されると、Ｓ１８６に移行し、Ｓ１４０の通信処理にてバッテリパック４から日時情報を取得した際にセットされるバッテリ日時取得完了フラグがセットされているか否かを判断する。
【０１２５】
Ｓ１８６にて、バッテリ日時取得完了フラグはセットされていると判断されると、Ｓ１８７に移行して、制御回路２０が認識している現在の日時情報を、バッテリパック４から取得した最新の日時情報に書き換え、Ｓ１８８に移行する。
【０１２６】
そして、Ｓ１８８では、第２更新完了フラグをセットし、続くＳ１８９にて、Ｓ１８７にて更新された日時情報をカウントアップすることで、現在の日時情報を更新し、当該取得日時カウントアップ処理を終了する。
【０１２７】
なお、Ｓ１８９による日時情報のカウントアップは、Ｓ１８５にて、第２更新完了フラグがセットされていると判断された場合、及び、Ｓ１８６にて、バッテリ日時取得完了フラグはセットされていないと判断された場合にも実行される。
【０１２８】
このように、Ｓ１８０の取得日時カウントアップ処理では、Ｓ１８９の処理をメインルーチンの一つとして周期的にくり返し実行することで、日時情報を周期的にカウントアップし、現在の日時を計測する。
【０１２９】
そして、Ｓ１４０の通信処理にて、外部機器８若しくはバッテリパック４から日時情報が取得されている場合には、その計測中の日時を、外部機器８若しくはバッテリパック４から取得した最新の日時情報に基づき書き換え、日時の計測を継続する。
【０１３０】
次に、図１１に示すように、Ｓ１９０のスリープ処理では、Ｓ１９１にて、トリガスイッチ２３等のスイッチ操作がない状態が所定時間以上経過しているか否かを判断し、スイッチ操作がない状態が所定時間以上経過していなければ、当該スリープ処理を終了する。
【０１３１】
一方、スイッチ操作がない状態が所定時間以上経過している場合には、Ｓ１９２に移行して、スリープ移行要求フラグをセットし、続くＳ１９３にて、書き込み要求フラグをセットした後、Ｓ１９４に移行する。
【０１３２】
Ｓ１９４では、Ｓ１７４の書き込みデータ用意処理にてスリープ移行時の履歴情報（記憶内容１）を構成する各種情報が取得された際にセットされる、スリープ移行許可フラグがセットされているか否かを判断する。
【０１３３】
そして、スリープ移行許可フラグがセットされていなければ、当該スリープ処理を終了し、スリープ移行許可フラグがセットされていれば、Ｓ１９５に移行し、当該スリープ処理を含む制御処理の実行を停止することで、制御回路２０の消費電力を低減するスリープ状態に移行する。
【０１３４】
制御回路２０は、スリープ状態への移行によって、制御処理の実行を停止するが、その後、トリガスイッチ２３の操作等、予め設定されたウェイクアップ条件が成立すると、ウェイクアップする（Ｓ１９６）。
【０１３５】
そして、ウェイクアップ後は、Ｓ１９７にて、スリープ移行要求フラグ及びスリープ移行許可フラグをクリアし、Ｓ１９８にて、外部日時取得完了フラグ及びバッテリ日時取得完了フラグをクリアし、Ｓ１９９にて、第１更新完了フラグ及び第２更新完了フラグをクリアすることで、これら各フラグを初期化し、当該スリープ処理を終了する。
【０１３６】
以上説明したように、電動工具２においては、制御回路２０のスリープ状態への移行時、各種異常検出時、及び制御モードの切り替え時に、そのときの日時を表す日時情報を含む履歴情報を不揮発性メモリ２７に格納する。
【０１３７】
また、制御回路２０は、起動直後に外部機器８又はバッテリパック４から日時情報を取得し、その取得した日時情報に基づき、現在の日時を計測（カウント）する。
また、起動直後にバッテリパック４から日時情報を取得した際には、その後、外部機器８から日時情報を取得すると、その日時情報に基づき、計測中の日時を更新し、更に、その日時情報をバッテリパック４に通知することで、バッテリパック４が計測中の日時を更新させる。
【０１３８】
従って、本実施形態の電動工具２によれば、制御回路２０において、現在の日時を正確に把握することができ、不揮発性メモリ２７に履歴情報を格納する際、履歴情報に正確な日時情報を付与することができる。
【０１３９】
よって、電動工具２の使用者は、不揮発性メモリ２７に記憶された履歴情報から、電動工具２の動作履歴を、その動作日時と共に正確に把握することができ、電動工具２のトレーサビリティ管理を適正に行うことができる。
【０１４０】
また、制御回路２０は、何らかの異常を検出すると、その異常内容毎に、異常検出回数をカウントし、不揮発性メモリ２７に格納する履歴情報には、そのカウントした各異常の検出回数を表す回数情報を付与する。
【０１４１】
このため、不揮発性メモリ２７の記憶容量の制限から、最新の履歴情報を書き込む際に、古い履歴情報が消去されたとしても、不揮発性メモリ２７の記憶された履歴情報から、過去に検出された異常内容とその検出回数を検知することができる。
【０１４２】
よって、本実施形態の電動工具２によれば、不揮発性メモリ２７の記憶容量の制限により、電動工具２のトレーサビリティ管理を実施できなくなるのを防止できる。
なお、本実施形態の電動工具２においては、ＭＣＵにて構成され、上述した制御処理を実行する制御回路２０が、本発明の通信手段、日時情報取得手段、制御手段、及び、計測手段に相当し、不揮発性メモリ２７は、本発明の記憶手段に相当する。
【０１４３】
また特に、制御回路２０にて実行される制御処理の内、Ｓ１４０にて実行される通信処理は、本発明の通信手段及び日時情報取得手段として機能し、Ｓ１３０、Ｓ１５０〜Ｓ１７０にて実行されるモード設定切換処理、異常状態確認処理、モータ制御処理、及びメモリ操作処理は、本発明の制御手段として機能し、Ｓ１８０にて実行される取得日時カウントアップ処理は、本発明の計測手段として機能する。
［充電器６の制御回路７０による制御処理］
図１２に示すように、充電器６の制御回路７０においては、サブコンバータ６４から電源が投入されて、制御処理を開始すると、Ｓ３００にて、バッテリ３６の充電制御に用いられる各種パラメータや後述する各種フラグを初期設定する初期化処理を実行する。
【０１４４】
また、この初期化処理では、電動工具２と同様、後述の処理で新たな履歴情報を生成して不揮発性メモリ６９に書き込むために、現在不揮発性メモリ６９に格納されている履歴情報の中から、充電器６の動作履歴として保存される異常状態の検出回数を読み込む。
【０１４５】
つまり、充電器６においては、制御回路７０のスリープ状態への移行時、バッテリ３６の過電圧検出時、過電流検出時、充電ステート異常検出時、及びバッテリ異常検出時に、それぞれ、図１３に示す記憶内容１〜５の履歴情報を不揮発性メモリ６９に格納するようにされている。
【０１４６】
なお、充電ステート異常は、充電器６側でのバッテリパック４の認識結果と、バッテリパック４側での充電器６の認識結果とに違いがあり、バッテリ３６への充電を正常に実行できないときに検出される異常である。また、バッテリ異常は、温度測定回路３９にて検出されるバッテリ温度等、バッテリ３６に何らかの異常が生じたときに検出される異常である。
【０１４７】
そして、制御回路７０のスリープ状態への移行時には、履歴情報として、過電圧検出回数、過電流検出回数、充電ステート異常検出回数、バッテリ異常検出回数を表す回数情報「１」に、日時情報「６」を付与したもの（記憶内容１）が、不揮発性メモリ６９に格納される。
【０１４８】
また、回数情報「１」は、電動工具２と同様、上記各異常検出時にも、履歴情報の一部として、不揮発性メモリ６９に格納される。
このため、Ｓ３００の初期化処理では、電動工具２の初期化処理と同様、不揮発性メモリ６９に格納された最新の履歴情報から上記各異常の検出回数を読み込むことで、その後、上記各異常検出時に検出回数を更新し、その更新後の検出回数を付与した履歴情報を、不揮発性メモリ６９に格納できるようにしている。
【０１４９】
なお、過電圧検出時、過電流検出時、充電ステート異常検出時、及び、バッテリ異常検出時に、不揮発性メモリ６９に格納される履歴情報は、図１３に記憶内容２〜５として記載されている通りである。
【０１５０】
すなわち、過電圧検出時には、そのときのバッテリパック４の接続状態を表すステート情報、バッテリ３６への充電経過時間、及び充電電圧を表す情報「２」に、回数情報「１」と日時情報「６」を付与したもの（記憶内容２）が、履歴情報として不揮発性メモリ６９に格納される。
【０１５１】
また、過電流検出時には、そのときのステート情報、充電電流分布、及び充電経過時間を表す情報「３」に、回数情報「１」と日時情報「６」を付与したもの（記憶内容３）が、履歴情報として不揮発性メモリ６９に格納される。
【０１５２】
また、充電ステート異常検出時には、過電流検出時の情報「３」と同様、そのときのステート情報、充電電流分布、及び充電経過時間を表す情報「４」に、回数情報「１」と日時情報「６」を付与したもの（記憶内容４）が、履歴情報として不揮発性メモリ６９に格納される。
【０１５３】
また、バッテリ異常検出時には、そのときのステート情報、バッテリの状態情報（バッテリ温度等）、及び充電経過時間を表す情報「５」に、回数情報「１」と日時情報「６」を付与したもの（記憶内容５）が、履歴情報として不揮発性メモリ６９に格納される。
【０１５４】
次に、Ｓ３１０では、充電器６に対するバッテリパック４の接続状態を確認し、続くＳ３２０にて、充電電圧、充電電流等のＡＤ変換値を取り込む。
また、Ｓ３３０では、外部機器８及びバッテリパック４との間で通信を行う通信処理を実行し、続くＳ３４０では、充電時に生じる過電圧、過電流や、充電ステート異常の発生状態を確認する異常状態確認処理を実行する。
【０１５５】
そして、Ｓ３５０では、バッテリ３６への充電を行う充電制御処理を実行する。なお、この充電制御処理では、異常状態確認処理にて、異常が検出されると、その後、充電器６からバッテリパック４が外されるまで、バッテリ３６への充電を停止する。
【０１５６】
次に、Ｓ３６０では、不揮発性メモリ６９への履歴情報の書き込みを行うメモリ操作処理を実行し、続くＳ３７０では、外部機器８から取得した日時情報に基づき、現在の日時を更新（カウントアップ）する、取得日時カウントアップ処理を実行する。
【０１５７】
そして、最後に、Ｓ３８０にて、充電器６からバッテリパック４が外されている状態が所定時間以上経過しているときに、スリープ状態に移行し、スリープ状態への移行後にバッテリパック４が接続されるとウェイクアップする、スリープ処理を実行する。
【０１５８】
なお、スリープ処理実行後は、再度Ｓ３１０に移行することにより、上記一連の処理を繰り返し実行する。
次に、上記一連の処理の内、不揮発性メモリ６９への履歴情報の書き込みに関連する処理について説明する。
【０１５９】
但し、Ｓ３３０の通信処理、Ｓ３６０のメモリ操作処理（書き込みデータ用意処理を除く）、及び、Ｓ３７０の取得日時カウントアップ処理は、図６、図８、図１０に示した電動工具２における通信処理、メモリ操作処理、取得日時カウントアップ処理と同様に実行されるので、ここでは説明を省略する。
【０１６０】
図１４に示すように、Ｓ３１０のバッテリ接続確認処理では、Ｓ３１１にて、充電器６に対しバッテリパック４が接続されているか否かを判断し、バッテリパック４が接続されていなければ、当該バッテリ確認処理を終了する。
【０１６１】
また、バッテリパック４が接続されていれば、Ｓ３１２に移行して、バッテリ日時取得完了フラグをクリアし、当該バッテリ確認処理を終了する。
次に、図１５に示すように、Ｓ３４０の異常状態確認処理では、Ｓ３４１にて、上述した各種異常状態（過電圧、過電流、充電ステート異常、バッテリ異常）が発生しているか否かを確認し、Ｓ３４２に移行する。
【０１６２】
Ｓ３４２では、異常検出中フラグがセットされているか否かを判断し、異常検出中フラグがセットされていなければ、Ｓ３４３にて、Ｓ３４１では何らかの異常状態が検出されたか否かを判断する。
【０１６３】
Ｓ３４３にて、異常状態が検出されていると判断されると、Ｓ３４４に移行して、その検出した異常状態を充電器６の動作履歴として残すために、書き込み要求フラグをセットし、続くＳ３４５にて、異常検出中フラグをセットする。
【０１６４】
そして、Ｓ３４３にて異常状態が検出されていないと判断されるか、或いは、Ｓ３４５にて異常検出中フラグをセットすると、当該異常状態確認処理を終了する。
一方、Ｓ３４２にて、異常検出中フラグがセットされていると判断された場合には、Ｓ３４６に移行して、充電器６からバッテリパック４が抜かれたか否かを判断する。そして、充電器６からバッテリパック４が抜かれていなければ、当該異常状態確認処理を終了する。また、充電器６からバッテリパック４が抜かれていれば、Ｓ３４７にて、異常検出中フラグをクリアし、Ｓ３４８にて、バッテリ異常フラグ及びバッテリ状態取得フラグをクリアした後、当該異常確認処理を終了する。
【０１６５】
なお、このように、充電器６にバッテリパック４が装着されていないときに上記各フラグをクリアするのは、次にバッテリパック４が装着された際にも、異常状態の検出を実施できるようにするためである。
【０１６６】
そして、Ｓ３４３にて異常状態が検出された際には、書き込み要求フラグがセットされるので、電動工具２と同様、異常状態が検出される度に、その旨を表す履歴情報が検出回数と共に不揮発性メモリ６９に記憶されることになる。
【０１６７】
次に、図１６に示すように、Ｓ３６０のメモリ操作処理にて実行される書き込みデータ用意処理では、まずＳ４１０にて、スリープ移行要求フラグがセットされているか否かを判断する。
【０１６８】
そして、スリープ移行要求フラグがセットされていれば、Ｓ４１１に移行して、図１３に示した記憶内容１を構成している各情報（過電圧検出回数、過電流検出回数、充電ステート異常検出回数、バッテリ異常検出回数、及び日時情報）の最新値を取得する。
【０１６９】
また、続くＳ４１２では、スリープ移行許可フラグをセットし、当該書き込みデータ用意処理を終了する。
次に、Ｓ４１０にて、スリープ移行要求フラグはセットされていないと判断されると、Ｓ４２０に移行し、Ｓ３４０の異常状態確認処理にて、過電圧が検出されたか否かを判断する。
【０１７０】
そして、過電圧が検出されていれば、Ｓ４２１に移行して、過電圧検出回数をインクリメント（＋１）し、続くＳ４２２にて、図１３に示した記憶内容２を構成している情報（ステート情報、充電経過時間、充電電圧、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１７１】
次に、Ｓ４２０にて、過電圧は検出されていないと判断された場合には、Ｓ４３０に移行し、Ｓ３４０の異常状態確認処理にて、過電流が検出されているか否かを判断する。
そして、過電流が検出されていれば、Ｓ４３１に移行して、過電流検出回数をインクリメント（＋１）し、続くＳ４３２にて、図１３に示した記憶内容３を構成している情報（ステート情報、充電電流分布、充電経過時間、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１７２】
また次に、Ｓ４３０にて、過電流は検出されていないと判断された場合には、Ｓ４４０に移行し、Ｓ３４０の異常状態確認処理にて、充電ステート異常が検出されているか否かを判断する。
【０１７３】
そして、充電ステート異常が検出されていれば、Ｓ４４１に移行して、充電ステート異常検出回数をインクリメント（＋１）し、続くＳ４４２にて、図１３に示した記憶内容４を構成している情報（ステート情報、充電電流分布、充電経過時間、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１７４】
また、Ｓ４４０にて、充電ステート異常は検出されていないと判断された場合には、Ｓ４５０に移行し、Ｓ３４０の異常状態確認処理にて、バッテリ異常が検出されているか否かを判断する。
【０１７５】
そして、バッテリ異常が検出されていれば、Ｓ４５１に移行して、バッテリ異常検出回数をインクリメント（＋１）し、続くＳ４５２にて、図１３に示した記憶内容５を構成している情報（ステート情報、バッテリの状態情報、充電経過時間、日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０１７６】
また、Ｓ４５０にて、バッテリ異常は検出されていないと判断された場合にも、当該書き込みデータ用意処理を終了する。
このように、Ｓ３６０のメモリ操作処理では、書き込み要求フラグがセットされているときに、図１６に示す書き込みデータ用意処理を実行することにより、不揮発性メモリ６９に書き込むべき履歴情報（図１３に示す記憶内容１〜５）を構成する各種情報を収集する。そして、その収集した各種情報に基づき履歴情報を生成し、不揮発性メモリ６９に格納する。
【０１７７】
次に、図１７に示すように、Ｓ３８０のスリープ処理では、Ｓ３８１にて、充電器６にバッテリパック４が装着されていない状態が所定時間以上経過しているか否かを判断し、バッテリパック４が装着されていない状態が所定時間以上経過していなければ、当該スリープ処理を終了する。
【０１７８】
一方、バッテリパック４が装着されていない状態が所定時間以上経過している場合には、Ｓ３８２に移行して、スリープ移行要求フラグをセットし、続くＳ３８３にて、書き込み要求フラグをセットした後、Ｓ３８４に移行する。
【０１７９】
Ｓ３８４では、図１６の書き込みデータ用意処理にてスリープ移行時の履歴情報（記憶内容１）を構成する各種情報が取得された際にセットされる、スリープ移行許可フラグがセットされているか否かを判断する。
【０１８０】
そして、スリープ移行許可フラグがセットされていなければ、当該スリープ処理を終了し、スリープ移行許可フラグがセットされていれば、Ｓ３８５に移行し、当該スリープ処理を含む制御処理の実行を停止することで、制御回路７０の消費電力を低減するスリープ状態に移行する。
【０１８１】
制御回路７０は、スリープ状態への移行によって、制御処理の実行を停止するが、その後、バッテリパック４が装着される等、予め設定されたウェイクアップ条件が成立すると、ウェイクアップする（Ｓ３８６）。
【０１８２】
そして、ウェイクアップ後は、Ｓ３８７にて、スリープ移行要求フラグ及びスリープ移行許可フラグをクリアし、Ｓ３８８にて、外部日時取得完了フラグをクリアし、Ｓ３８９にて、バッテリ日時取得完了フラグをクリアすることで、これら各フラグを初期化し、当該スリープ処理を終了する。
【０１８３】
以上説明したように、充電器６においては、制御回路７０のスリープ状態への移行時、及び、各種異常検出時に、そのときの日時を表す日時情報を含む履歴情報を不揮発性メモリ６９に格納する。
【０１８４】
また、制御回路７０は、電動工具２と同様の手順で通信処理を実行することで、起動直後に外部機器８又はバッテリパック４から日時情報を取得し、その取得した日時情報に基づき、現在の日時を計測（カウント）する。
【０１８５】
従って、本実施形態の充電器６によれば、電動工具２と同様、制御回路７０において、現在の日時を正確に把握することができ、不揮発性メモリ６９に履歴情報を格納する際、履歴情報に正確な日時情報を付与することができる。
【０１８６】
よって、充電器６の使用者は、不揮発性メモリ６９に記憶された履歴情報から、充電器６の動作履歴を、その動作日時と共に正確に把握することができ、充電器６のトレーサビリティ管理を適正に行うことができる。
【０１８７】
また、不揮発性メモリ６９に履歴情報を格納する際、履歴情報に、各種異常状態の検出回数を表す回数情報が付与されることから、履歴情報を書き込むために不揮発性メモリ６９に記憶された古い履歴情報が消去されたとしても、不揮発性メモリ６９の記憶された履歴情報から、過去に検出された異常内容とその検出回数を検知することができる。
【０１８８】
よって、充電器６においても、電動工具２と同様、不揮発性メモリ６９の記憶容量の制限により、充電器６のトレーサビリティ管理を実施できなくなるのを防止できる。
なお、本実施形態の充電器６においては、制御回路７０が、本発明の通信手段、日時情報取得手段、制御手段、及び、計測手段に相当し、不揮発性メモリ６９は、本発明の記憶手段に相当する。
【０１８９】
また特に、制御回路７０にて実行される制御処理の内、Ｓ３３０にて実行される通信処理は、本発明の通信手段及び日時情報取得手段として機能し、Ｓ３４０〜Ｓ３６０にて実行される異常状態確認処理、充電制御処理、及びメモリ操作処理は、本発明の制御手段として機能し、Ｓ３７０にて実行される取得日時カウントアップ処理は、本発明の計測手段として機能する。
［バッテリパック４の制御回路４０による制御処理］
図１８に示すように、バッテリパック４の制御回路４０においては、レギュレータ４４から電源が投入されて、制御処理を開始すると、Ｓ５００にて、バッテリ３６への充放電制御に用いられる各種パラメータや後述する各種フラグを初期設定する初期化処理を実行する。
【０１９０】
また、この初期化処理では、電動工具２や充電器６と同様、後述の処理で新たな履歴情報を生成して不揮発性メモリ４５に書き込むために、現在不揮発性メモリ４５に格納されている最新の履歴情報の中から、異常状態の検出回数を読み込む。
【０１９１】
つまり、バッテリパック４においては、制御回路４０のスリープ状態への移行時、バッテリ３６の過電圧検出時、過電流検出時、及びバッテリ異常検出時に、それぞれ、図１９に示す記憶内容１〜４の履歴情報を不揮発性メモリ４５に格納するようにされている。
【０１９２】
そして、制御回路４０のスリープ状態への移行時には、履歴情報として、過電圧検出回数、過電流検出回数、バッテリ異常検出回数を表す回数情報「１」に、後述の差分情報を加えた日時情報「５」を付与したもの（記憶内容１）が、不揮発性メモリ４５に格納される。
【０１９３】
また、回数情報「１」は、電動工具２や充電器６と同様、上記各異常検出時にも、履歴情報の一部として、不揮発性メモリ４５に格納される。
このため、Ｓ５００の初期化処理では、電動工具２及び充電器６における初期化処理と同様、不揮発性メモリ４５に格納された最新の履歴情報から上記各異常の検出回数を読み込むことで、その後、上記各異常検出時に検出回数を更新し、その更新後の検出回数を付与した履歴情報を、不揮発性メモリ４５に格納できるようにしている。
【０１９４】
なお、過電圧検出時、過電流検出時、及び、バッテリ異常検出時に、不揮発性メモリ４５に格納される履歴情報は、図１９に記憶内容２〜４として記載されている通りである。
すなわち、過電圧検出時には、そのときの電動工具２若しくは充電器６への接続状態を表すステート情報、バッテリ３６への充電経過時間、及び充電電圧を表す情報「２」に、回数情報「１」と日時情報「５」を付与したもの（記憶内容２）が、履歴情報として不揮発性メモリ４５に格納される。
【０１９５】
また、過電流検出時には、そのときのステート情報、充電／放電電流分布、及び、充電／放電経過時間を表す情報「３」に、回数情報「１」と日時情報「５」を付与したもの（記憶内容３）が、履歴情報として不揮発性メモリ４５に格納される。
【０１９６】
また、バッテリ異常検出時には、そのときのステート情報、バッテリの状態情報（バッテリ温度等）、及び、充電／放電経過時間を表す情報「４」に、回数情報「１」と日時情報「５」を付与したもの（記憶内容４）が、履歴情報として不揮発性メモリ４５に格納される。
【０１９７】
次に、Ｓ５１０では、電動工具２若しくは充電器６に対するバッテリパック４の接続状態を確認し、続くＳ５２０にて、バッテリ電圧、バッテリ電流、バッテリ温度等のＡＤ変換値を取り込む。
【０１９８】
また、Ｓ５３０では、バッテリパック４が接続された電動工具２若しくは充電器６との間で通信を行う通信処理を実行し、続くＳ５４０では、過電圧、過電流、バッテリ異常等の異常発生状態を確認する異常状態確認処理を実行する。
【０１９９】
そして、Ｓ５５０では、電動工具２若しくは充電器６への接続状態に応じて、バッテリ３６からの放電若しくはバッテリ３６への充電を制御する充放電制御処理を実行する。なお、この充放電制御処理では、異常状態確認処理にて、異常が検出されると、その後、バッテリパック４が電動工具２若しくは充電器６から外されるまで、バッテリ３６への充放電を停止する。
【０２００】
次に、Ｓ５６０では、不揮発性メモリ４５への履歴情報の書き込みを行うメモリ操作処理を実行し、続くＳ５７０では、現在の日時を更新（カウントアップ）することで日時を計測する、日時カウントアップ処理を実行する。
【０２０１】
そして、最後に、Ｓ５８０にて、バッテリパック４が電動工具２及び充電器６のいずれにも接続されていない状態が所定時間以上経過しているときに、スリープ状態に移行し、スリープ状態への移行後にバッテリパック４が電動工具２若しくは充電器６接続されるとウェイクアップする、スリープ処理を実行する。
【０２０２】
なお、スリープ処理実行後は、再度Ｓ３１０に移行することにより、上記一連の処理を繰り返し実行する。
次に、上記一連の処理の内、不揮発性メモリ４５への履歴情報の書き込みに関連する処理について説明する。
【０２０３】
但し、Ｓ５３０のメモリ操作処理（書き込みデータ用意処理を除く）は、図８に示した電動工具２におけるメモリ操作処理と同様に実行されるので、ここでは説明を省略する。
また、Ｓ５７０の日時カウントアップ処理は、電動工具２及び充電器６にて実行される取得日時カウントアップ処理とは異なり、制御回路４０がスリープ状態であるときにも、レギュレータ４４がバッテリ３６から電源供給を受けて制御回路４０に電源供給を行っているときには、定期的に実行される。
【０２０４】
そして、Ｓ５７０では、バッテリパック４の製造時に設定された日時を順次カウントアップしてゆくことで、バッテリパック４単独で現在の日時を計測する。
図２０に示すように、Ｓ５３０の通信処理では、まずＳ５３１にて、バッテリパック４が接続されている電動工具２若しくは充電器６から通信があったか否かを判断する。
【０２０５】
そして、電動工具２若しくは充電器６から通信があれば、Ｓ５３２に移行して、電動工具２若しくは充電器６からの送信データに含まれている現在の日時情報を取得する。
次に、Ｓ５３３では、Ｓ５３２で取得した日時情報から得られる現在の日時と、制御回路４０が認識（換言すればカウント）している現在の日時との差分を算出し、その算出した差分を、差分情報として、現在カウント中の日時に関連付ける。
【０２０６】
また、続くＳ５３４では、バッテリパック４が接続されている電動工具２若しくは充電器６から、バッテリ状態情報の要求があったか否かを判断する。
そして、電動工具２若しくは充電器６からバッテリ状態情報の要求があれば、Ｓ５３５にて、その要求されたバッテリ状態情報を電動工具２若しくは充電器６に出力した後、当該通信処理を終了し、バッテリ状態情報の要求がなければ、そのまま当該通信処理を終了する。
【０２０７】
このように、Ｓ５３０の通信処理では、電動工具２若しくは充電器６からの通信に従い、日時情報の取得、及び、バッテリ状態情報の送信を行う。これは、上述したように、バッテリパック４と電動工具２若しくは充電器６との通信時には、バッテリパック４がスレーブ、電動工具２若しくは充電器６がマスタとなるように設定されているためである。
【０２０８】
次に、図２１に示すように、Ｓ５４０の異常状態確認処理では、Ｓ５４１にて、上述した各種異常状態（過電圧、過電流、バッテリ異常）が発生しているか否かを確認し、Ｓ５４２に移行する。
【０２０９】
Ｓ５４２では、異常検出中フラグがセットされているか否かを判断し、異常検出中フラグがセットされていなければ、Ｓ５４３にて、Ｓ５４１では何らかの異常状態が検出されたか否かを判断する。
【０２１０】
Ｓ５４３にて、異常状態が検出されていると判断されると、Ｓ５４４に移行して、その検出した異常状態をバッテリパック４の動作履歴として残すために、書き込み要求フラグをセットし、続くＳ５４５にて、異常検出中フラグをセットする。
【０２１１】
そして、Ｓ５４３にて異常状態が検出されていないと判断されるか、或いは、Ｓ５４５にて異常検出中フラグをセットすると、当該異常状態確認処理を終了する。
一方、Ｓ５４２にて、異常検出中フラグがセットされていると判断された場合には、Ｓ５４６に移行して、バッテリパック４が電動工具２若しくは充電器６から一旦外されてから、電動工具２に装着されたか否かを判断する。
【０２１２】
そして、バッテリパック４が充電器６に新たに装着されたときには、Ｓ５４７にて、異常検出中フラグをクリアした後、当該異常状態確認処理を終了し、バッテリパック４が充電器６に新たに装着されていなければ、そのまま当該異常状態確認処理を終了する。
【０２１３】
なお、このように、バッテリパック４が充電器６に新たに装着されたときに、異常検出中フラグをクリアするのは、次にバッテリパック４が充電器６に装着されて充電を開始し、その後、電動工具２に装着されて電動工具２への電力供給を行う際にも、上記各種異常状態を検出できるようにするためである。
【０２１４】
そして、Ｓ５４３にて異常状態が検出された際には、書き込み要求フラグがセットされるので、電動工具２や充電器６と同様、異常状態が検出される度に、その旨を表す履歴情報が検出回数と共に不揮発性メモリ４５に記憶されることになる。
【０２１５】
次に、図２２に示すように、Ｓ５６０のメモリ操作処理にて実行される書き込みデータ用意処理では、まずＳ６１０にて、スリープ移行要求フラグがセットされているか否かを判断する。
【０２１６】
そして、スリープ移行要求フラグがセットされていれば、Ｓ６１１に移行して、図１９に示した記憶内容１を構成している各情報（過電圧検出回数、過電流検出回数、バッテリ異常検出回数、及び、Ｓ５３３にて関連付けられた差分情報を含む日時情報）の最新値を取得する。また、続くＳ６１２では、スリープ移行許可フラグをセットし、当該書き込みデータ用意処理を終了する。
【０２１７】
次に、Ｓ６１０にて、スリープ移行要求フラグはセットされていないと判断されると、Ｓ６２０に移行し、Ｓ５４０の異常状態確認処理にて、過電圧が検出されたか否かを判断する。
【０２１８】
そして、過電圧が検出されていれば、Ｓ６２１に移行して、過電圧検出回数をインクリメント（＋１）し、続くＳ６２２にて、図１９に示した記憶内容２を構成している情報（ステート情報、充電経過時間、充電電圧、差分情報を含む日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０２１９】
次に、Ｓ６２０にて、過電圧は検出されていないと判断された場合には、Ｓ６３０に移行し、Ｓ５４０の異常状態確認処理にて、過電流が検出されているか否かを判断する。
そして、過電流が検出されていれば、Ｓ６３１に移行して、過電流検出回数をインクリメント（＋１）し、続くＳ６３２にて、図１９に示した記憶内容３を構成している情報（ステート情報、充電／放電電流分布、充電／放電経過時間、差分情報を含む日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０２２０】
また次に、Ｓ６３０にて、過電流は検出されていないと判断された場合には、Ｓ６４０に移行し、Ｓ５４０の異常状態確認処理にて、バッテリ異常が検出されているか否かを判断する。
【０２２１】
そして、バッテリ異常が検出されていれば、Ｓ６４１に移行して、バッテリ異常検出回数をインクリメント（＋１）し、続くＳ６４２にて、図１９に示した記憶内容４を構成している情報（ステート情報、バッテリの状態情報、充電／放電経過時間、差分情報を含む日時情報、及び、各異常状態の検出回数）の最新値を取得し、当該書き込みデータ用意処理を終了する。
【０２２２】
また、Ｓ６４０にて、バッテリ異常は検出されていないと判断された場合にも、当該書き込みデータ用意処理を終了する。
このように、Ｓ５６０のメモリ操作処理では、書き込み要求フラグがセットされているときに、図２２に示す書き込みデータ用意処理を実行することにより、不揮発性メモリ４５に書き込むべき履歴情報（図１９に示す記憶内容１〜４）を構成する各種情報を収集する。そして、その収集した各種情報に基づき履歴情報を生成し、不揮発性メモリ４５に格納する。
【０２２３】
次に、図２３に示すように、Ｓ５８０のスリープ処理では、Ｓ５８１にて、バッテリパック４が電動工具２若しくは充電器６に装着されていない状態が所定時間以上経過しているか否かを判断し、バッテリパック４が電動工具２若しくは充電器６に装着されていない状態が所定時間以上経過していなければ、当該スリープ処理を終了する。
【０２２４】
一方、バッテリパック４が電動工具２若しくは充電器６に装着されていない状態が所定時間以上経過している場合には、Ｓ５８２に移行して、スリープ移行要求フラグをセットし、続くＳ５８３にて、書き込み要求フラグをセットした後、Ｓ５８４に移行する。
【０２２５】
Ｓ５８４では、図２２の書き込みデータ用意処理にてスリープ移行時の履歴情報（記憶内容１）を構成する各種情報が取得された際にセットされる、スリープ移行許可フラグがセットされているか否かを判断する。
【０２２６】
そして、スリープ移行許可フラグがセットされていなければ、当該スリープ処理を終了し、スリープ移行許可フラグがセットされていれば、Ｓ５８５に移行し、当該スリープ処理を含む制御処理の実行を停止することで、制御回路４０の消費電力を低減するスリープ状態に移行する。
【０２２７】
なお、バッテリパック４においては、上述したように、スリープ状態であっても、制御回路４０は、Ｓ５７０の日時カウントアップ処理を実行するために定期的に起動し、日時の計測を継続する。
【０２２８】
そして、制御回路４０は、スリープ状態への移行後、バッテリパック４が電動工具２若しくは充電器６へ装着されることにより、所定のウェイクアップ条件が成立すると、ウェイクアップする（Ｓ５８６）。
【０２２９】
また、ウェイクアップ後は、Ｓ５８７にて、スリープ移行要求フラグ及びスリープ移行許可フラグをクリアすることで、これら各フラグを初期化し、当該スリープ処理を終了する。
【０２３０】
以上説明したように、バッテリパック４においては、制御回路４０のスリープ状態への移行時、及び、各種異常検出時に、そのときの日時を表す日時情報を含む履歴情報を不揮発性メモリ４５に格納する。
【０２３１】
また、制御回路４０は、バッテリパック４が電動工具２若しくは充電器６に装着された際に、電動工具２若しくは充電器６から日時情報（詳しくは、電動工具２若しくは充電器６が外部機器８から取得した日時情報）を取得する。
【０２３２】
そして、その取得した日時情報から得られる日時と、バッテリパック４側で計測中の日時との差分を、差分情報として算出し、不揮発性メモリ４５に履歴情報を格納する際には、その差分情報を含む日時情報を、履歴情報に付与する。
【０２３３】
従って、本実施形態のバッテリパック４によれば、制御回路４０において、日時カウントアップ処理にて計測される日時と、差分情報とに基づき、現在の日時を正確に把握することができる。
【０２３４】
また、不揮発性メモリ４５には、差分情報を含む日時情報が付与された履歴情報が格納されるので、バッテリパック４の使用者は、不揮発性メモリ４５に記憶された履歴情報から、バッテリパック４の動作履歴を、動作日時と共に正確に把握することができ、バッテリパック４のトレーサビリティ管理を適正に行うことができる。
【０２３５】
また、不揮発性メモリ４５に履歴情報を格納する際、履歴情報には、各種異常状態の検出回数を表す回数情報が付与されることから、履歴情報を書き込むために不揮発性メモリ４５に記憶された古い履歴情報が消去されたとしても、不揮発性メモリ４５の記憶された履歴情報から、過去に検出された異常内容とその検出回数を検知することができる。
【０２３６】
よって、バッテリパック４においても、電動工具２や充電器６と同様、不揮発性メモリ４５の記憶容量の制限により、バッテリパック４のトレーサビリティ管理を実施できなくなるのを防止できる。
【０２３７】
また、例えば、バッテリ電圧の低下等によって、制御回路４０が完全に動作を停止した際には、Ｓ５７０の日時カウントアップ処理も停止され、日時計測を継続することができなくなる。しかし、充電によりバッテリ電圧が上昇して、制御回路４０が動作を開始すれば、差分情報が生成されることから、制御回路４０は、その差分情報と計測中の日時情報とから現在の日時を正確に検知することができる。また、差分情報から、制御回路４０の動作停止時間（換言すればバッテリ３６の電圧低下期間）を推定することもできる。
【０２３８】
なお、本実施形態のバッテリパック４においては、制御回路４０が、本発明の通信手段、日時情報取得手段、制御手段、及び、計測手段に相当し、不揮発性メモリ４５は、本発明の記憶手段に相当する。
【０２３９】
また特に、制御回路４０にて実行される制御処理の内、Ｓ５３０にて実行される通信処理は、本発明の通信手段及び日時情報取得手段として機能し、Ｓ５４０〜Ｓ５６０にて実行される異常状態確認処理、充電制御処理、及びメモリ操作処理は、本発明の制御手段として機能し、Ｓ５７０にて実行される日時カウントアップ処理は、本発明の計測手段として機能する。
［変形例］
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内にて、種々の態様をとることができる。
【０２４０】
上記実施形態では、電動工具２、バッテリパック４、及び、充電器６の各制御回路２０、４０、７０は、不揮発性メモリ２７、４５、６９に格納する履歴情報には、全て、各異常状態の検出回数を表す回数情報を付与するものとして説明した。
【０２４１】
しかし、各異常状態の検出回数は、各制御回路２０、４０、７０が制御処理を開始する際に、不揮発性メモリ２７、４５、６９から最新値が読み込まれ、その後の制御処理にて更新される。
【０２４２】
このため、図２４に例示する電動工具の履歴情報のように、各制御回路２０、４０、７０がスリープ状態に移行するときの履歴情報（記憶内容１）にだけ、異常検出回数を付与し、他の履歴情報（記憶内容２〜６）には、異常検出回数を付与しないようにしてもよい。
【０２４３】
このようにすれば、不揮発性メモリ２７、４５、６９に格納される履歴情報のデータ量を少なくして、不揮発性メモリ２７、４５、６９の書き替え回数（換言すれば消去回数）を減らし、延いては、不揮発性メモリ２７、４５、６９の寿命を延ばすことができる。
【０２４４】
なお、この場合、不揮発性メモリ２７、４５、６９に履歴情報を書き込む際に、過去の履歴情報が消去され、その後、スリープ状態へ移行する迄に、制御回路２０、４０、７０への電源供給が遮断されると、それまでカウントした異常検出回数が消滅してしまう。
【０２４５】
そこで、この場合には、各制御回路２０、４０、７０が、不揮発性メモリ２７、４５、６９に記憶された履歴情報を消去した際には、その時点で認識している異常検出回数を、不揮発性メモリ２７、４５、６９に格納するようにするとよい。
【０２４６】
次に、上記実施形態では、電動工具２は、バッテリパック４から電源供給を受けて動作するものとして説明した。しかし、本発明は、図２５に例示するように、電動工具２が交流電力を供給する商用電源に接続するための電源プラグ９１を備え、電源プラグ９１を介して得られる交流電力にてモータ９４を駆動するように構成されていても、上記実施形態と同様に適用することができる。
【０２４７】
つまり、図２５に示す電動工具２においては、駆動回路２４として、交流電力を受けてモータ９４を駆動する駆動回路が備えられ、制御回路２０がこの駆動回路２４を介してモータ９４を駆動制御する。また、図２５の電動工具２には、交流電力を受けて、内部回路駆動用の電源電圧（直流定電圧）Ｖｃｃを生成する電源回路９５が設けられている。
【０２４８】
そして、このような電動工具２においても、外部機器８を接続するための端子１６〜１９を設け、制御回路２０が、通信用の端子１８、１９を介して外部機器８との間で通信を行うことで、日時情報を取得するようにすれば、上記実施形態の電動工具２と同様の効果を得ることができる。
【０２４９】
また、上記実施形態では、バッテリパック４は、電動工具２又は充電器６に選択的に装着可能に構成され、電動工具２又は充電器６から日時情報を取得するものとして説明した。しかし、図２６に例示するように、バッテリパック４は、電動工具２及び充電器６だけでなく、外部機器８にも接続できるよう、構成されていてもよい。そして、このようにすれば、バッテリパック４の制御回路４０は、外部機器８から直接日時情報を取得することができるようになる。
【０２５０】
また、上記実施形態では、外部機器８が、ＧＰＳ衛星からの送信電波や標準電波から正確な日時を取得可能なＧＰＳモジュール８５及び標準電波受信モジュール８６を備えた携帯通信端末であり、電動工具２及び充電器６には、その外部機器８を直接接続できるものとして説明した。
【０２５１】
しかし、例えば、図２７に例示するように、外部機器８がパーソナルコンピュータ（ＰＣ）であり、外部機器８を電動工具２及び充電器６に直接接続することができない場合には、電動工具２及び充電器６に、外部機器８との間の通信を中継するアダプタ９を接続するようにしてもよい。
【０２５２】
このようにすれば、電動工具２及び充電器６は、アダプタ９を介して、外部機器８と通信を行い、外部機器８から正確な日時情報を取得することが可能となる。
なお、アダプタ９は、電動工具２若しくは充電器６から電力供給を受けるための端子８１、８２と、電動工具２及び充電器６に接続するための通信端子８３、８４と、外部機器８を接続するための通信端子９７、９８とを備える。
【０２５３】
そして、通信端子８３、８４と通信端子９７、９８との間には、各装置間で送受信される通信信号を適正なロジックレベルに変換するロジックレベル変換回路９６が設けられており、端子８１、８２には、ロジックレベル変換回路９６に電源供給を行うレギュレータ８７が接続されている。
【０２５４】
また次に、上記実施形態及び上記変形例では、電動工具２及び充電器６、若しくはバッテリパック４は、外部機器８から日時情報を取得するために、外部機器８を、端子を介して接続可能に構成されるものとして説明した。
【０２５５】
しかし、電動工具２、バッテリパック４、充電器６が外部機器８から日時情報を取得するようにするには、必ずしも、外部機器８を、端子を介して接続するように構成する必要はなく、外部機器８との間で無線通信することで、日時情報を取得するようにしてもよい。また、電動工具２、バッテリパック４、充電器６と、外部機器８との間の通信は、外部機器８に電源供給を行うのに利用される電力線を用いて行うようにしてもよい。
【０２５６】
また更に、上記実施形態及び変形例では、本発明を、電動工具システムを構成する電動工具２、バッテリパック４、充電器６、若しくは、商用電源から交流電力を受けて動作する電動工具２に適用する場合について説明したが、本発明は、例えば、草刈り器や掃除機等の電動作業機に適用することもできる。
【０２５７】
また、上記実施形態及び変形例では、不揮発性メモリ２７、４５、６９は、制御回路２０，４０，７０とは別に設けられているが、制御回路２０，４０，７０を構成するＭＣＵ内に設けてもよい。
【０２５８】
また、不揮発性メモリ２７、４５、６９に記憶された履歴情報は、パーソナルコンピュータ（ＰＣ）等の情報機器にコピー若しくは移動し、情報機器内で各種処理をすることで、履歴情報を閲覧できるようにしてもよい。
【０２５９】
そして、特に、図２７に示したシステムによれば、外部機器８としてのＰＣを、アダプタ９を介して電動工具２に接続できるので、不揮発性メモリ２７内の情報を外部機器８に簡単にコピー若しくは移動することができる。よって、使用者は、外部機器８としてのＰＣを利用して、不揮発性メモリ２７に格納された履歴情報を閲覧することができるようになる。
【０２６０】
また、上記実施形態及び変形例では、外部機器８は、電動工具２や充電器６とは別体で構成されるものとして説明したが、例えば、電動工具２（若しくは充電器６）に外部機器８の機能（ＧＰＳモジュール８５、標準電波受信モジュール８６等を利用した日時情報検出機能）を設け、電動工具２（若しくは充電器６）がバッテリパック４に対する外部機器となって、バッテリパック４に日時情報を提供するようにしてもよい。
【符号の説明】
【０２６１】
２…電動工具、４…バッテリパック、６…充電器、８…外部機器、９…アダプタ、２０，４０，７０，９０…制御回路、２１，９４…モータ、２３…トリガスイッチ、２４…駆動回路、２７，４５，６９…不揮発性メモリ、２８，４４，８７…レギュレータ、２９…モード切り替えスイッチ、３６…バッテリ、３７，６５…電圧測定回路、３８，６８…電流測定回路、３９…温度測定回路、４３…充電器検出回路、６１，９１…電源プラグ、６２…整流平滑回路、６３…メインコンバータ、６４…サブコンバータ、６６…過電圧保護回路、６７…ＰＷＭ制御ＩＣ、８５…ＧＰＳモジュール、８６…標準電波受信モジュール、９５…電源回路、９６…ロジックレベル変換回路。
【図１】
2014217908.tif 000003
【図２】
2014217908.tif 000004
【図３】
2014217908.tif 000005
【図４】
2014217908.tif 000006
【図５】
2014217908.tif 000007
【図６】
2014217908.tif 000008
【図７】
2014217908.tif 000009
【図８】
2014217908.tif 000010
【図９】
2014217908.tif 000011
【図１０】
2014217908.tif 000012
【図１１】
2014217908.tif 000013
【図１２】
2014217908.tif 000014
【図１３】
2014217908.tif 000015
【図１４】
2014217908.tif 000016
【図１５】
2014217908.tif 000017
【図１６】
2014217908.tif 000018
【図１７】
2014217908.tif 000019
【図１８】
2014217908.tif 000020
【図１９】
2014217908.tif 000021
【図２０】
2014217908.tif 000022
【図２１】
2014217908.tif 000023
【図２２】
2014217908.tif 000024
【図２３】
2014217908.tif 000025
【図２４】
2014217908.tif 000026
【図２５】
2014217908.tif 000027
【図２６】
2014217908.tif 000028
【図２７】
2014217908.tif 000029