(58)【調査した分野】(Int.Cl.,DB名)
前記電池モジュールは、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に、所定のルールに従ってその電池モジュールの前記第1識別子を他の前記電池モジュールと重複しない値に決定する第1識別子決定手段を有する、請求項1に記載の情報処理システム。
前記所定のルールは、前記電池モジュールが識別子情報を送信した時点又は前記電池モジュールの製造番号に基づいて、その電池モジュールに設定する前記第1識別子を決定するルールである、請求項2に記載の情報処理システム。
前記電池モジュールは、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に警告を出力する変更手段を有する、請求項1に記載の情報処理システム。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0018】
[実施形態1]
図1は、実施形態1に係る情報処理システム3000を例示するブロック図である。
図1において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【0019】
情報処理システム3000は、第1通信網3020、第2通信網3040、及び複数の電池モジュール2000を有する。第1通信網3020は、各電池モジュール2000を互いに通信可能に接続する通信網である。各電池モジュール2000は、第1通信網3020を介して、情報処理システム3000に含まれる他の各電池モジュール2000と互いに通信可能である。
【0020】
第2通信網3040は線形トポロジで構成される通信網である。各電池モジュール2000は、第2通信網3040上で隣接する他の電池モジュール2000と通信可能である。互いに隣接する電池モジュール2000は、信号線3041で接続されている。
図1では、電池モジュール2000−1は信号線3041−1を介して電池モジュール2000−2と通信可能である。また電池モジュール2000−2は、信号線3041−2を介して電池モジュール2000−3と通信可能である。
【0021】
なお、第1通信網3020のトポロジは、各電池モジュール2000が互いに通信を行える任意のトポロジでよい。例えば第1通信網3020のトポロジはバス型のトポロジである。
【0022】
電池モジュール2000には、第1通信網3020を介した通信で利用される識別子が設定される。以下、この識別子を第1識別子と呼ぶ。電池モジュール2000は、当該電池モジュール2000の第1識別子が、その他の電池モジュール2000の第1識別子と重複しているか否かを判定する機能を有する。そのために電池モジュール2000は、識別子情報送信部2020、識別子情報受信部2040、第1通知実行部2060、第1通知検出部2080、及び判定部2100を有する。
【0023】
識別子情報送信部2020は、第1通信網3020を介して、他の全ての電池モジュール2000へ識別子情報を送信する。或る電池モジュール2000によって送信される識別子情報は、(1)その電池モジュール2000に設定されている第1識別子を示すか、又は(2)その電池モジュール2000に第1識別子が設定されていないことを示す。
【0024】
識別子情報受信部2040は、第1通信網3020を介して、他の電池モジュール2000によって送信された識別子情報を受信する。
【0025】
第1通知実行部2060は、第2通信網3040を介して第1通知を行う。第1通知は、当該電池モジュール2000の識別子情報送信部2020によって識別子情報が送信されたことの通知である。ここで第1通知実行部2060は、当該電池モジュール2000と第2通信網3040上の第1方向3042において隣接する他の電池モジュール2000に対して第1通知を行う。
【0026】
第1通知検出部2080は、第2通信網3040を介して第1通知を検出する。この第1通知は、当該電池モジュール2000と第2通信網3040上の第2方向3044において隣接する他の電池モジュール2000によって行われた通知である。ここで、第1方向3042と第2方向3044は互いに逆の方向である。例えば電池モジュール2000−2と第2通信網3040上の第2方向3044において隣接する電池モジュール2000−1から見ると、電池モジュール2000−2は第2通信網3040の第1方向3042に位置する。
【0027】
判定部2100は、当該電池モジュール2000の第1識別子が、他の電池モジュール2000の第1識別子と重複しているか否かを判定する。この判定は、全ての電池モジュール2000によって識別子情報が送信されたことに応じて実行される。またこの判定には、他の電池モジュール2000から受信した識別子情報が利用される。
【0028】
情報処理システム3000のうち、或る1つの電池モジュール2000の識別子情報送信部2020は、その電池モジュール2000の第1通知検出部2080によって第1通知が検出されたこと以外の所定の事象に応じて、識別子情報を送信する。以下、この電池モジュール2000を、スタータ電池モジュールと呼ぶ。一方で、スタータ電池モジュール以外の電池モジュール2000の識別子情報送信部2020は、その電池モジュール2000の第1通知検出部2080によって第1通知が検出されたことに応じて、識別子情報を送信する。
【0029】
ここで、前述した第1方向3042は、スタータ電池モジュールから遠ざかる方向である。一方、第2方向3044は、スタータ電池モジュールへ近づく方向である。よってスタータ電池モジュールは、第2通信網3040において第2方向3044に隣接する電池モジュール2000を有さない。例えば
図1では、電池モジュール2000−1がスタータ電池モジュールである。そのため、電池モジュール2000−1から電池モジュール2000−2へ向かう方向、及び電池モジュール2000−2から電池モジュール2000−3へ向かう方向はいずれも第1方向3042である。一方、電池モジュール2000−3から電池モジュール2000−2へ向かう方向、及び電池モジュール2000−2から電池モジュール2000−1へ向かう方向はいずれも第2方向3044である。なお以下では、電池モジュール2000−1のことを、スタータ電池モジュール2000−1とも表記する。
【0030】
<処理の流れ>
図2は、実施形態1の情報処理システム3000における処理の流れを例示するフローチャートである。スタータ電池モジュールである電池モジュール2000−1は、起動されたこと(S102)に応じて、識別子情報を送信する(S104)。電池モジュール2000−2と電池モジュール2000−3は、電池モジュール2000−1によって送信された識別子情報を受信する(S106)。電池モジュール2000−1は、信号線3041−1を介し、電池モジュール2000−2に対して第1通知を行う(S108)。
【0031】
電池モジュール2000−2は、第1通知を検出したこと(S110)に応じて、識別子情報を送信する(S112)。電池モジュール2000−1と電池モジュール2000−3は、電池モジュール2000−2によって送信された識別子情報を受信する(S114)。電池モジュール2000−2は、信号線3041−2を介し、電池モジュール2000−3に対して第1通知を行う(S116)。
【0032】
電池モジュール2000−3は、第1通知を検出したこと(S118)に応じて、識別子情報を送信する(S120)。電池モジュール2000−1と電池モジュール2000−2は、電池モジュール2000−3によって送信された識別子情報を受信する(S122)。
【0033】
各電池モジュール2000は、自身の第1識別子が他の電池モジュール2000の第1識別子と重複しているか否かを判定する(S124)。
【0034】
なお、情報処理システム3000によって行われる処理の流れは、
図2に示す流れに限定されない。その他の処理の流れについては後述する。
【0035】
<作用・効果>
本実施形態の情報処理システム3000によれば、各電池モジュール2000から送信される識別子情報を用いて、電池モジュール2000間における識別子の重複が生じているか否かが自動で判定される。よって、電池モジュール2000間における識別子の重複を効率的に検出することができる。
【0036】
以下、本実施形態についてさらに詳細に説明する。
【0037】
<電池モジュール2000のハードウエア構成例>
電池モジュール2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、電池モジュール2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0038】
図3は、電池モジュール2000のハードウエア構成を例示する図である。電池モジュール2000には、コントローラ1000及び電池セル10が含まれている。電池セル10は、リチウムイオン電池などの二次電池である。コントローラ1000は、電池セル10の充電や放電の制御を行ったり、他の電池モジュール2000が有するコントローラ1000と制御情報のやりとりを行ったりする装置である。例えばコントローラ1000は、BMU(Battery Management Unit)である。
【0039】
コントローラ1000は、バス1020、プロセッサ1040、メモリ1060、ストレージ1080、入出力インタフェース1100、第1ネットワークインタフェース1120、及び第2ネットワークインタフェース1140を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージ1080、入出力インタフェース1100、及び第1ネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。プロセッサ1040は、MPU(Micro Processing Unit)又は CPU(Central Processing Unit)などの演算処理装置である。メモリ1060は、RAM(Random Access Memory)や ROM(Read Only Memory)などのメモリである。ストレージ1080は、フラッシュメモリなどの記憶装置である。入出力インタフェース1100は、コントローラ1000と入出力デバイスとを接続するためのインタフェースである。
【0040】
第1ネットワークインタフェース1120は、コントローラ1000と第1通信網3020とを接続するインタフェースである。識別子情報送信部2020は、第1ネットワークインタフェース1120に識別子情報を出力させることで、識別子情報の送信を実現する。識別子情報送信部2020は、第1ネットワークインタフェース1120によって受信される識別子情報を取得することで、識別子情報の受信を実現する。第2ネットワークインタフェース1140は、コントローラ1000と第2通信網3040とを接続するインタフェースである。送信通知の実現方法については後述する。
【0041】
ストレージ1080は、電池モジュール2000の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ1040は、これら各プログラムモジュールをメモリ1060に読み出して実行することで、そのプログラムモジュールに対応する各機能を実現する。
【0042】
コントローラ1000のハードウエア構成は
図3に示した構成に限定されない。例えば、各プログラムモジュールはメモリ1060に格納されてもよい。この場合、コントローラ1000は、ストレージ1080を備えていなくてもよい。
【0043】
<識別子情報について>
電池モジュール2000の識別子情報送信部2020によって送信される識別子情報は、第1通信網3020におけるその電池モジュール2000の識別子を表す。例えば第1通信網3020が CAN 通信網である場合、識別子情報は CAN 通信網における ID(identifier)を表す。以下、CAN 通信網における ID を CAN-ID と表記する。
【0044】
図4は、CAN 通信網における識別子情報のデータ構造を例示する図である。
図4の識別子情報は、8バイトのデータである。識別子情報の0バイト目から3バイト目までは、電池モジュール2000の製造番号を示している。識別子情報の4バイト目は、電池モジュール2000の CAN-ID(第1識別子)を示している。識別子情報の5バイト目は、電池モジュール2000のステータスデータを示している。識別子情報の6バイト目及び7バイト目に含まれるデータは任意である。
【0045】
識別子情報のステータスデータの利用方法は様々である。例えば、スタータ電池モジュール2000によって送信される識別子情報のステータスデータに、識別子情報の送信元がスタータ電池モジュール2000であるか否かを示すようにする。例えば、ステータスデータの0ビット目を、送信元がスタータ電池モジュール2000であるか否かを示すフラグとして用いる。
【0046】
また例えば、第2通信網3040の第1方向3042方向において終端にある電池モジュール2000(以下、終端電池モジュール2000)によって送信される識別子情報のステータスデータには、識別子情報の送信元が終端電池モジュール2000であるか否かを示すようにする。例えば、ステータスデータの1ビット目を、送信元がスタータ電池モジュール2000であるか否かを示すフラグとして用いる。なお、
図1において、終端電池モジュール2000は電池モジュール2000−3である。
【0047】
なお、
図4に示す識別子情報のデータ構造は、第1通信網3020が CAN 通信網以外である場合においても採用することが可能である。ただし、その通信網で利用される通信プロトコルによって第1識別子のサイズなどが異なることもある。その場合には、識別子情報のデータサイズを、通信プロトコルに合わせて適切に設定する。
【0048】
<識別子情報の送信:S104など>
識別子情報送信部2020は、第1通信網3020において識別子情報を送信する。CAN 通信網などを介して情報を送信する技術には、既知の技術を利用することができる。
【0049】
スタータ電池モジュール以外の電池モジュール2000の識別子情報送信部2020は、第1通知検出部2080によって第1通知が検出されたことに応じて識別子情報の送信を行う。この場合、識別子情報送信部2020は、第1通知検出部2080によって第1通知が検出された時点で識別子情報の送信を行ってもよいし、第1通知検出部2080によって第1通知が検出された時点以降の任意の時点で識別子情報の送信を行ってもよい。第1通知が検出された後の任意の時点とは、例えば、第1通知が検出された時点から所定時間が経過した時点である。この所定時間は、識別子情報送信部2020に設定されていてもよいし、識別子情報送信部2020からアクセス可能な記憶装置に記憶されていてもよい。
【0050】
一方で、スタータ電池モジュールは、第1通知検出部2080によって第1通知が検出されるという事象以外の所定の事象に応じて識別子情報の送信を行う。この所定の事象は、例えばスタータ電池モジュールが起動されるという事象である。つまりこの場合、スタータ電池モジュールは、起動時に識別子情報の送信を行う。前述した
図2のフローチャートでは、スタータ電池モジュールは、起動されたことに応じて識別子情報を送信している。スタータ電池モジュールの起動は、電源スイッチをONにする操作などに伴う通常の起動であってもよいし、停電などの異常からの復帰に伴う起動であってもよい。
【0051】
なお、ここでいう起動時とは、起動直後である必要はない。例えばスタータ電池モジュールは、起動後に種々の初期設定を行った後に、識別子情報の送信を行う。また例えばスタータ電池モジュールは、初期設定を行った後、さらに所定時間経過した後に識別子情報を送信してもよい。スタータ電池モジュール以外の電池モジュール2000が起動するタイミングは、スタータ電池モジュールが起動するタイミングより遅いこともありうる。この場合、スタータ電池モジュールの初期設定が完了した直後に識別子情報が送信されると、他の電池モジュール2000の初期設定が完了しておらず、他の電池モジュール2000が識別子情報を正常に受信できない可能性もある。スタータ電池モジュールで初期設定が完了してから所定時間経過するまで識別子情報の送信を遅延すれば、他の電池モジュール2000が初期設定を行う時間が確保され、他の電池モジュール2000が正常に識別子情報を受信できる確率が高くなる。
【0052】
また、上記所定の事象は、例えば、スタータ電池モジュール内にある電池セル10の充電の完了である。つまりこの場合、スタータ電池モジュールは、スタータ電池モジュール内にある電池セル10の充電が完了したことに応じて識別子情報の送信を行う。なお、電池セル10の充電が完了したことを検出する方法には、既存の技術を利用することができる。
【0053】
また、上記所定の事象は、例えば、情報処理システム3000に新たな電池モジュール2000が追加されるという事象である。例えば、一度情報処理システム3000において第1識別子の重複を判定するための一連の処理(例えば、
図2の一連の処理)が行われた後に、情報処理システム3000に対して新たに電池モジュール2000が追加されたとする。この場合、新たに追加された電池モジュール2000の第1識別子が、他の電池モジュール2000の第1識別子と重複している可能性がある。そのため、情報処理システム3000において再度第1識別子の重複の判定を行う必要がある。
【0054】
そこで、スタータ電池モジュールは、情報処理システム3000に新たな電池モジュール2000が追加されたことに応じて、識別子情報の送信を行う。またこれに応じ、第1識別子の重複の判定に必要な残りの処理(例えば、
図2のS106以降の処理)が順次行われる。その結果、新たに追加された電池モジュール2000を含め、情報処理システム3000に含まれる全ての電池モジュール2000それぞれによって、第1識別子の重複が判定される。なお、情報処理システム3000に新たな電池モジュール2000が追加された場合における情報処理システム3000の動作の詳細については後述する。
【0055】
<<スタータ電池モジュールであるか否かの判定>>
各電池モジュール2000は、所定のタイミングで、自身がスタータ電池モジュールであるか否かを判定する。そして、自身がスタータ電池モジュールであると判定した電池モジュール2000の識別子情報送信部2020は、識別子情報の送信を行う。この所定のタイミングは、スタータ電池モジュールが識別子情報を送信するタイミング(起動時など)又はそれ以前のタイミングである。この所定のタイミングは、電池モジュール2000に予め設定されていてもよいし、電池モジュール2000からアクセス可能な記憶装置に記憶されていてもよい。
【0056】
電池モジュール2000がスタータ電池モジュールであるか否かを判定する方法は様々である。例えば電池モジュール2000は、当該電池モジュール2000と他の電池モジュール2000との接続状態に基づいて、当該電池モジュール2000がスタータ電池モジュールであるか否かを判定する。ここで、第2通信網3040の第1方向3042において隣接する電池モジュール2000と当該電池モジュール2000との間を結ぶ信号線3041が接続されるポートを第1ポートと呼び、第2通信網3040の第2方向3044において隣接する電池モジュール2000と当該電池モジュール2000との間を結ぶ信号線3041が接続されるポートを第2ポートと呼ぶ。例えば電池モジュール2000−2の場合、信号線3041−2が接続されているポートが第1ポートであり、信号線3041−1が接続されているポートが第2ポートである。この場合、電池モジュール2000は、第2ポートに信号線3041が接続されていない場合や、第2ポートに接続されている信号線3041が通電してない場合に、当該電池モジュール2000がスタータ電池モジュールであると判定する。
【0057】
<識別子情報の受信:S106など>
識別子情報受信部2040は識別子情報を受信する。CAN 通信網などを介して送信された情報を受信する技術には、既知の技術を利用することができる。
【0058】
識別子情報受信部2040は、例えば、受信した識別子情報を記憶装置に記憶する。以下、識別子情報が記憶される記憶装置を識別子情報記憶部と呼ぶ。
図5は、識別子情報記憶部を有する電池モジュール2000を例示するブロック図である。識別子情報記憶部2120は、例えばメモリ1060やストレージ1080によって実現される。
【0059】
<第1通知の実行:S108など>
第1通知実行部2060は、当該電池モジュール2000によって識別子情報が送信されたことに応じて、第1通知を行う。第1通知は、第2通信網3040を利用して行われる。第1通知は、第2通信網3040を介して当該電池モジュール2000と接続されている電池モジュール2000が、当該電池モジュール2000によって識別子情報が送信されたことを把握することができる任意の通知である。
【0060】
例えば第1通知実行部2060は、当該電池モジュール2000と通知先の電池モジュール2000(第2通信網3040の第1方向3042において当該電池モジュール2000と隣接している電池モジュール2000)との間を接続している信号線3041の電圧を変化させることで、第1通知を行う。
【0061】
より具体的には、第1通知実行部2060は、信号線3041の電圧を比較的低い値(以下、ロー値)と比較的高い値(以下、ハイ値)との間で切り替えることによって第1通知を行う。この場合、各電池モジュール2000は起動後に、信号線3041の電圧をハイ値に設定する。その後、第1通知実行部2060は、信号線3041の電圧をロー値に変更することで第1通知を行う。信号線3041の電圧の値を変更する方法には、既知の技術を利用することができる。
【0062】
なお、ハイ値とロー値は、ハイ値がロー値よりも大きく、なおかつこれらの電圧の間にこれらの電圧を区別可能な程度の差異がある値であれば、任意の値とすることができる。また、第1通知が行われる前の信号線3041の電圧をロー値としておき、信号線3041の電圧をハイ値に変更することで第1通知を行ってもよい。
【0063】
<第1通知の検出:S110など>
第1通知検出部2080は、第2通信網3040の第2方向3044において隣接している電池モジュール2000によって行われる第1通知を検出する。より具体的には、第1通知検出部2080は、第2通信網3040の第2方向3044において隣接している電池モジュール2000と当該電池モジュール2000との間を接続する信号線3041を利用して第1通知を検出する。
【0064】
例えば前述した通り、第1通知は、信号線3041の電圧をハイ値からロー値へ変更することで行われる。この場合、第1通知検出部2080は、当該電池モジュール2000と、第2通信網3040の第2方向3044において隣接している別の電池モジュール2000との間を接続する信号線3041の電圧がハイ値からロー値に変更されたことを検出することで、第1通知を検出する。信号線3041の電圧の値が変更されたことを検出する方法には、既知の技術を利用することができる。
【0065】
<第1識別子の重複の判定:S124>
判定部2100は、他の各電池モジュール2000から受信した識別子情報を用いて、当該電池モジュール2000の識別子と他の電池モジュール2000との間で第1識別子が重複しているか否かを判定する。具体的には、識別子情報記憶部2120に記憶されている識別子情報の中に、当該電池モジュール2000と同じ第1識別子を示す識別子情報がある場合、判定部2100は、その識別子情報に対応する電池モジュール2000と当該電池モジュール2000との間で第1識別子が重複していると判定する。一方、識別子情報記憶部2120に記憶されている識別子情報の中に、当該電池モジュール2000と同じ第1識別子を示す識別子情報がない場合、判定部2100は、当該電池モジュール2000の第1識別子が、他のいずれの電池モジュール2000の第1識別子とも重複しないないと判定する。
【0066】
<判定部2100が動作するタイミング>
判定部2100は、全ての電池モジュール2000によって識別子情報が送信されたことに応じて、当該電池モジュール2000の第1識別子と他の電池モジュール2000の第1識別子との間の重複を判定する。全ての電池モジュール2000によって識別子情報が送信されたことを判定部2100が把握する方法は様々である。以下、その把握方法をいくつか例示する。
【0067】
<<把握方法1>>
終端電池モジュールの判定部2100は、自身の識別子情報送信部2020によって識別子情報が送信されたことに応じて、全ての電池モジュール2000によって識別子情報が送信されたことを把握する。一方、終端電池モジュール以外の電池モジュール2000の判定部2100は、終端電池モジュールによって送信された識別子情報を受信したことに応じて、全ての電池モジュール2000によって識別子情報が送信されたことを把握する。
【0068】
前述したように、例えば識別子情報には、その送信元が終端電池モジュールであるか否かを示すフラグが含まれる。そこで終端電池モジュールの識別子情報送信部2020によって送信される識別子情報では、このフラグの値が1に設定されるようにする。一方、終端電池モジュール以外の電池モジュール2000の識別子情報送信部2020によって送信される識別子情報では、このフラグの値が0に設定されるにようにする。
【0069】
終端電池モジュール2000以外の電池モジュール2000の判定部2100は、上記フラグが1となっている識別子情報が受信されたことに応じて、全ての電池モジュール2000によって識別子情報が送信されたことを把握する。
【0070】
<<把握方法2>>
情報処理システム3000に含まれる電池モジュール2000の数が予め定められているとする。この場合、判定部2100は、識別子情報受信部2040によって受信された識別子情報の数が、情報処理システム3000に含まれる電池モジュール2000の数から1を引いた数(当該電池モジュール2000を除く電池モジュール2000の総数)となった場合に、全ての電池モジュール2000によって識別子情報が送信されたことを把握する。当該電池モジュール2000を除く電池モジュール2000の総数は、判定部2100に予め設定されていてもよいし、判定部2100からアクセス可能な記憶装置に記憶されていてもよい。
【0071】
<<把握方法3>>
この方法では、第2通信網3040が、信号線3041に加えて第2信号線3046を有していることを想定する。
図6は、第2信号線3046を有する情報処理システム3000を例示するブロック図である。
図6において、図を見やすくするため、電池モジュール2000の内部構成は省略されている。
【0072】
前述したように、信号線3041は、第2通信網3040の第1方向3042において隣接する他の電池モジュール2000に対して各電池モジュール2000が通知(第1通知)を行うために利用される。これに対し、第2信号線3046は、第2通信網3040の第2方向3044において隣接する他の電池モジュール2000に対して各電池モジュール2000が通知を行うために利用される。以下、さらに詳細に説明する。
【0073】
第2通信網3040の第1方向3042において隣接する電池モジュール2000が無い電池モジュール2000(
図6では電池モジュール2000−4)は、識別子情報を送信した後に、第2信号線3046を介して通知を行う。この通知を第2通知と呼ぶ。第2通知は、第2通信網3040の第1方向3042において終端に位置する電池モジュール2000によって識別子情報の送信が行われたことを表す通知である。言い換えれば、第2通知は、全ての電池モジュール2000によって識別子情報が送信されたことを表す通知である。電池モジュール2000は、第2通知を検出することにより、全ての電池モジュール2000によって識別子情報の送信が行われたことを把握することができる。
【0074】
第1方向3042において隣接する電池モジュール2000によって行われた第2通知を検出した電池モジュール2000は、同様に、第2方向3044において隣接する電池モジュール2000に対して第2通知を行う。こうすることで、例えば
図6では、電池モジュール2000−4から電池モジュール2000−3に対して第2通知が行われ、電池モジュール2000−3から電池モジュール2000−2に対して第2通知が行われ、電池モジュール2000−2から電池モジュール2000−1に対して第2通知が行われる。結果として、第1方向3042において終端に位置する電池モジュール2000を除き、全ての電池モジュール2000が第2通知を受けることとなる。よって、全ての電池モジュール2000が、全ての電池モジュール2000によって識別子情報が送信されたことを把握することができる。
【0075】
なお、第2信号線3046を用いて第2通知を行う方法、及びその第2通知を検出する方法はそれぞれ、信号線3041を介して第1通知を行う方法、及びその第1通知を検出する方法と同様である。
【0076】
図7は、第2通知の実行及び検出を行う機能を有する電池モジュール2000を例示するブロック図である。第2通知実行部2180は、第2通信網3040の第2方向3044において隣接する他の電池モジュール2000に対して第2通知を行う。第2通知検出部2200は、第2通信網3040の第1方向3042において隣接する他の電池モジュール2000によって行われた第2通知を検出する。
【0077】
<<把握方法4>>
判定部2100は、識別子情報受信部2040によって最初の識別子情報が受信されたタイミングから所定時間が経過した場合、又は第1通知検出部2080によって第1通知が検出されたタイミングから所定時間が経過した場合に、「全ての電池モジュール2000によって識別子情報が送信された」と推測してもよい。この所定時間は、判定部2100に予め設定されていてもよいし、判定部2100からアクセス可能な記憶装置に記憶しておいてもよい。
【0078】
<新たに電池モジュール2000が追加された際の動作>
前述したように、スタータ電池モジュールは、情報処理システム3000に新たな電池モジュール2000が追加されたことに応じ、識別子情報の送信を行う。こうすることで、追加された電池モジュール2000を含め、情報処理システム3000に含まれる全ての電池モジュール2000それぞれによって、第1識別子の重複が判定される。以下、新たに電池モジュール2000が追加された際における情報処理システム3000の動作を具体的に説明する。
【0079】
各電池モジュール2000は、第2ポート(その電池モジュール2000と、その電池モジュール2000から見て第2方向3044に位置する電池モジュール2000とを接続する信号線3041が接続されるポート)の電圧を繰り返し監視する。そして、この電圧がロー値からハイ値に変化する(第1通知による変化とは逆に変化する)ことを検出した電池モジュール2000は、第1通信網3020を介して所定のリクエストを送信する。なお、第2ポートの電圧の初期値はロー値であるとする。そして、スタータ電池モジュールは、この所定のリクエストを受信したことを契機に識別子情報を送信する。ここで、所定のリクエストについては後述する。
【0080】
情報処理システム3000の動作について、図を用いてさらに詳細に説明する。
図8から
図10は、新たな電池モジュール2000が追加される様子を例示する図である。これらの図の例ではいずれも、電池モジュール2000−5(ドット柄の電池モジュール2000)が、追加された電池モジュール2000である。そして、電池モジュール2000−1から電池モジュール2000−4については、既に第1識別子の重複の判定が行われているものとする。
【0081】
図8は、電池モジュール2000が新たな終端電池モジュールとして追加されるケースを表す図である。ここで、終端電池モジュールの第1通知実行部2060は、識別子情報を送信した後に第1通知を実行しない。例えば
図8の例では、電池モジュール2000−1から電池モジュール2000−4において第1識別子の重複が判定された際、電池モジュール2000−1から電池モジュール2000−3は第1通知を実行するが、電池モジュール2000−4は第1通知を実行しない。そのため
図8の例において、信号線3041−1から信号線3041−3の電圧はロー値である一方で、信号線3041−4の電圧はハイ値である。
【0082】
そのため、信号線3041−4を介して電池モジュール2000−4と電池モジュール2000−5とが接続されることにより、電池モジュール2000−5は、第2ポートの電圧がロー値からハイ値へ変化することを検出する。そのため、電池モジュール2000−5が、前述した所定のリクエストの送信を行う。
【0083】
図9は、電池モジュール2000が新たなスタータ電池モジュールとして追加されるケースを表す図である。
図9のケースでは、信号線3041−1から信号線3041−3の電圧は、第1通知によってロー値に変更されている。一方で、信号線3041−4の電圧はハイ値である。
【0084】
そのため、信号線3041−4を介して電池モジュール2000−1と電池モジュール2000−5とが接続されることにより、電池モジュール2000−1(以前のスタータ電池モジュール)は、第2ポートの電圧がロー値からハイ値に変化することを検出する。そのため、電池モジュール2000−1が、前述した所定のリクエストの送信を行う。
【0085】
図10は、追加される電池モジュール2000が新たな終端電池モジュールでも新たなスタータ電池モジュールでもないケースを表す図である。
図10のケースでも、信号線3041−1から信号線3041−3の電圧はロー値に変更されている一方で、信号線3041−4の電圧はハイ値である。
【0086】
そのため、信号線3041−4を介して電池モジュール2000−3と電池モジュール2000−5とが接続されることにより、電池モジュール2000−3は、第2ポートの電圧がロー値からハイ値に変化することを検出する。そのため、電池モジュール2000−3が、前述した所定のリクエストの送信を行う。
【0087】
なお、
図9の例の
図10の例ではいずれも、所定のリクエストを送信する電池モジュール2000は、追加された電池モジュール2000から見て第1方向3042に位置する電池モジュール2000となる。一方、
図8の例では、所定のリクエストを送信する電池モジュール2000は、追加された電池モジュール2000となる。
【0088】
<<所定のリクエストについて>>
上記所定のリクエストは、例えば第1通信網3020を介して送信されるデータ(以下、リクエストデータ)である。例えばリクエストデータは、
図4に示した識別子情報と同じデータ構造を有するデータである。ただし、リクエストデータでは、ステータスデータの所定のビット(例えば2ビット目)が1となっている一方で、識別子情報ではステータスデータのこのビットが0となっているとする。スタータ電池モジュールは、このビットが1となっているデータ(リクエストデータ)を受信することによって、新たな電池モジュール2000が追加されたことを検出する。
【0089】
[実施形態1の変形例]
図11は変形例1の情報処理システム3000を例示するブロック図である。本変形例では、スタータ電池モジュール2000−1に複数の電池モジュール2000が接続されていることを想定する。なお、以下で説明する点を除き、変形例1の電池モジュール2000が有する機能は実施形態1の電池モジュール2000が有する機能と同様である。
【0090】
以下の説明を簡単にするため、
図11において、電池モジュール2000−2及び電池モジュール2000−3をまとめてグループ1と呼び、電池モジュール2000−4及び電池モジュール2000−5をまとめてグループ2と呼ぶ。
【0091】
<スタータ電池モジュール2000−1が第1通知を行うタイミング>
スタータ電池モジュール2000−1の第1通知実行部2060は、識別子情報の送信が完了した後に、いずれかの信号線3041を用いて第1通知を行う。例えば第1通知実行部2060が、識別子情報の送信が完了したタイミングで、電池モジュール2000−2に対して第1通知を行うとする。この場合、スタータ電池モジュール2000−1は、電池モジュール2000−2に対して第1通知を行うタイミングとは別のタイミングで、電池モジュール2000−4に対しても第1通知を行う。
【0092】
具体的には、スタータ電池モジュール2000−1の第1通知実行部2060は、グループ1に含まれる全ての電池モジュール2000による識別子情報の送信が完了した後に、電池モジュール2000−3に対して第1通知を行う。グループ1に含まれる全ての電池モジュール2000による識別子情報の送信が完了したことを把握する方法は、実施形態1において全ての電池モジュール2000によって識別子情報が送信されたことを把握する方法と同様である。例えばスタータ電池モジュール2000−1の第1通知実行部2060は、識別子情報受信部2040によって受信された識別子情報の数が、グループ1に含まれる電池モジュール2000の数となった場合に、グループ1に含まれる全ての電池モジュール2000によって識別子情報が送信されたことを把握する。また例えば、スタータ電池モジュール2000−1の第1通知実行部2060は、電池モジュール2000−2から前述した第2通知を受けることで、グループ1に含まれる全ての電池モジュール2000によって識別子情報が送信されたことを把握する。また例えば、スタータ電池モジュール2000−1の第1通知実行部2060は、識別子情報受信部2040によって最初の識別子情報が受信されたタイミングから所定時間が経過した場合、又は第1通知検出部2080によって電池モジュール2000−2による第1通知が検出されたタイミングから所定時間が経過した場合に、「グループ1に含まれる全ての電池モジュール2000によって識別子情報が送信された」と推測してもよい。
【0093】
<第1識別子の重複の判定を行うタイミング>
判定部2100は、各グループに含まれる全ての電池モジュール2000による識別子情報の送信が完了したことに応じて第1識別子の重複の判定を行う。ここで、スタータ電池モジュール2000−1は、前述した種々の方法により、或るグループに含まれる全ての電池モジュール2000によって識別子情報が送信されたことを把握することができる。そのため、スタータ電池モジュール2000−1の判定部2100は、前述した種々の方法を用い、全てのグループについて、そのグループに含まれる電池モジュール2000によって識別子情報が送信されたことを把握した場合に、第1識別子の重複の判定を行う。
【0094】
一方で、スタータ電池モジュール2000−1以外の電池モジュール2000の判定部2100は、(1)受信した識別子情報の数、又は(2)所定時間の経過に応じて、第1識別子の重複の判定を行う。(1)の場合、より具体的には、判定部2100は、識別子情報受信部2040によって受信された識別子情報の数が、情報処理システム3000に含まれる電池モジュール2000の総数から1を引いた値となったことに応じて、第1識別子の重複の判定を行う。(2)の場合、より具体的には、判定部2100は、識別子情報受信部2040によって最初の識別子情報が受信されたタイミングから所定時間が経過したこと、又は第1通知検出部2080によって第1通知が検出されたタイミングから所定時間が経過したことに応じて、第1識別子の重複の判定を行う。
【0095】
[実施形態2]
図12は、実施形態2に係る電池モジュール2000を例示するブロック図である。以下で説明する点を除き、実施形態2の電池モジュール2000は、実施形態1の電池モジュール2000と同様の機能を有する。
【0096】
実施形態2の電池モジュール2000は第1識別子決定部2140を有する。第1識別子決定部2140は、当該電池モジュール2000の第1識別子が他の電池モジュール2000の第1識別子と重複している場合に、当該電池モジュール2000に設定する第1識別子を決定する処理を行う。こうすることで、当該電池モジュール2000の第1識別子が、他の電池モジュール2000の第1識別子と重複しないようにする。
【0097】
ここで情報処理システム3000の中に、第1識別子が他のいずれかの電池モジュール2000と重複している電池モジュール2000と、第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000との両方が含まれているとする。この場合、第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子決定部2140は、第1識別子の決定を行ってもよいし、行わなくてもよい。前者の場合、第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子も変更される。一方後者の場合、第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子は変更されない。
【0098】
なお、第1識別子が設定されていない電池モジュール2000の第1識別子決定部2140は、第1識別子が他の電池モジュール2000と重複している電池モジュール2000の第1識別子決定部2140と同様に、第1識別子の決定を行う。
【0099】
第1識別子決定部2140による第1識別子の決定は、所定ルールに従って行われる。この所定ルールは、情報処理システム3000に含まれる複数の電池モジュール2000を互いに区別できる指標を用いて、電池モジュール2000の第1識別子を決定することができる任意のルールである。以下、所定ルールをいくつか例示する。
【0100】
<所定ルール1>
所定ルール1は、各電池モジュール2000の識別子情報が送信されたタイミングを指標として、第1識別子を決定するルールである。実施形態1で説明したように、情報処理システム3000に含まれる電池モジュール2000は、互いに異なるタイミングで識別子情報を送信する。そのため、識別子情報が送信されたタイミングに基づいて、各電池モジュール2000を互いに区別することができる。
【0101】
例えば判定部2100は、情報処理システム3000に含まれる電池モジュール2000のうち、当該電池モジュール2000が何番目に識別子情報を送信した電池モジュール2000であるかを割り出す。具体的には、判定部2100は、当該電池モジュール2000が識別子情報を送信する前に、いくつの電池モジュール2000から識別子情報を受信したかを割り出す。例えば当該電池モジュール2000が識別子情報を送信した時点よりも前に、当該電池モジュール2000の識別子情報受信部2040が2つの識別子情報を受信していたとする。この場合、当該電池モジュール2000は、3番目に識別子情報を送信した電池モジュール2000である。
【0102】
なお、このように識別子情報を送信した時点の順位(何番目に識別子情報を送信したか)を割り出せるようにするため、識別子情報記憶部2120には、識別子情報に対応づけてその識別子情報を受信した時点(例えば受信時刻)を記憶しておく。また、当該電池モジュール2000が識別子情報を送信した時点も任意の記憶装置に記憶しておく。
【0103】
また例えば、電池モジュール2000は、識別子情報を送信した際に、当該電池モジュール2000が識別子情報を送信した時点の順位を割り出し、この順位を記憶装置に記憶しておいてもよい。具体的には、電池モジュール2000は、識別子情報を送信する前に受信した識別子情報の個数に1を加えた数を、識別子情報を送信した時点の順位として記憶する。
【0104】
所定ルール1では、識別子情報を送信した時点の順位に、電池モジュール2000の識別子が対応づけられる。ただし、識別子情報を送信した順位に対応づけることができる第1識別子は、(1)第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子を変更しないケースと、(2)第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子も変更するケースとで異なる。以下、それぞれのケースについて説明する。なお、(1)のケースでは、第1識別子が他の電池モジュール2000と重複していない電池モジュール2000の第1識別子決定部2140は、第1識別子の決定を行わない。一方、(2)のケースでは、全ての電池モジュール2000の第1識別子決定部2140それぞれが、第1識別子の決定を行う。
【0105】
<<(1)のケース>>
(1)のケースでは、変更されずにそのまま利用され続ける第1識別子(いずれか1つの電池モジュール2000のみに設定されている第1識別子)は、他の電池モジュール2000によって新たに設定される第1識別子の候補から除く必要がある。そのために、例えば以下のように第1識別子を決定する。
【0106】
まず第1識別子決定部2140は、いずれか1つの電池モジュール2000によってのみ利用されている第1識別子を割り出す。具体的には、第1識別子決定部2140は、当該電池モジュール2000の第1識別子、及び識別子情報記憶部2120に記憶されている各識別子情報に示されている第1識別子の中から、他の第1識別子と重複していない第1識別子を割り出す。
【0107】
さらに第1識別子決定部2140は、電池モジュール2000に設定可能な全ての第1識別子の集合から、他の第1識別子と重複していない第1識別子を除いた集合(以下、候補集合)を生成する。例えば第1識別子が1バイトの値で表され、なおかつ 0x00 と 0xFF は第1識別子としては利用しないように決められているとする。この場合、電池モジュール2000に設定可能な第1識別子の集合 S は、S = {0x01, 0x02, ... , 0xFE} となる。
【0108】
また、第1識別子 0x02 は電池モジュール2000−2のみに設定されており、第1識別子 0x04 は電池モジュール2000−3のみに設定されているとする。この場合、候補集合 C は集合 S から 0x02 と 0x04 を除いた集合 C = {0x01, 0x03, 0x05, ..., 0xFE} となる。
【0109】
そして第1識別子決定部2140は、当該電池モジュール2000が識別子情報を送信した時点の順位に応じて、候補集合に含まれる第1識別子の中から、当該電池モジュール2000の第1識別子を決定する。例えば第1識別子決定部2140が、「当該電池モジュール2000が識別子情報を送信した順位は3である」ということを割り出したとする。この場合、第1識別子決定部2140は、候補集合における3番目の第1識別子(上述の候補集合 C では 0x05)を、当該電池モジュール2000の第1識別子として決定する。
図13は、識別子情報を送信した時点と候補集合 C との対応付けを例示する第1の図である。
【0110】
なお、ケース(2)において、第1識別子決定部2140によって決定された第1識別子が既に電池モジュール2000に設定されている第1識別子と同じである場合、当該電池モジュール2000の第1識別子を変更する処理を行う必要はない。
【0111】
<<(2)のケース>>
第1識別子が他のいずれの電池モジュール2000とも重複していない電池モジュール2000の第1識別子も変更するケースである。この場合、第1識別子決定部2140は、電池モジュール2000に設定可能な識別子の集合をそのまま候補集合とする。例えば前述の例における集合 S が候補集合となる。
【0112】
そして第1識別子決定部2140は、当該電池モジュール2000が識別子情報を送信した時点の順位に応じて、候補集合に含まれる第1識別子の中から、当該電池モジュール2000の第1識別子を決定する。例えば当該電池モジュール2000が、他の電池モジュール2000から2つの識別子情報を受信した後に、識別子情報を送信していたとする。この場合、第1識別子決定部2140は、候補集合 S における3番目の第1識別子(上述の集合 S では 0x03)を、当該電池モジュール2000の第1識別子として決定する。
図14は、識別子情報を送信した時点と候補集合 C との対応付けを例示する第2の図である。
【0113】
<所定ルール2>
所定ルール2は、各電池モジュール2000の製造番号を指標として、第1識別子を決定するルールである。電池モジュール2000の製造番号は、電池モジュール2000が製造される時に、電池モジュール2000に固有に割り当てられる識別子である。そのため、情報処理システム3000に含まれる各電池モジュール2000は、製造番号によって区別可能である。
【0114】
例えば第1識別子決定部2140は、情報処理システム3000に含まれる電池モジュール2000を製造番号の昇順に並べた場合における当該電池モジュール2000の順位を割り出す。そして、第1識別子決定部2140は、当該電池モジュール2000の製造番号の順位に応じて、当該電池モジュール2000の第1識別子を決定する。なお、所定ルール2において電池モジュール2000の製造番号の順位に応じてその電池モジュール2000の第1識別子を決定する方法は、所定ルール1において電池モジュール2000が識別子情報を送信した時点の順位に応じてその電池モジュール2000の第1識別子を決定する方法と同様である。
【0115】
図15は、電池モジュール2000の製造番号と候補集合との対応付けを例示する図である。
図15(a)では、他のいずれの電池モジュール2000とも第1識別子が重複していない電池モジュール2000の第1識別子を変更しない。そのため、
図13と同様に、0x02 及び 0x04 が候補集合から除かれている。一方、
図15(b)では、他のいずれの電池モジュール2000とも第1識別子が重複していない電池モジュール2000の第1識別子も変更される。
【0116】
<ハードウエア構成の例>
実施形態2の電池モジュール2000は、実施形態1と同様にコントローラ1000を用いて実現される(
図3参照)。本実施形態において、前述したストレージ1080に記憶される各プログラムモジュールには、本実施形態の電池モジュール2000の各機能を実現するプログラムが含まれる。
【0117】
<作用・効果>
電池モジュール2000の識別子を管理者などが手動で設定する場合、設定ミスによって識別子の重複が発生してしまったり、管理者などの作業負担が大きくなってしまったりするという問題がある。さらに、手動で識別子を設定するためのスイッチ回路を電池モジュール2000に設ける場合には、電池モジュール2000の回路規模が大きくなってしまうという問題も生じる。
【0118】
これに対し、本実施形態の情報処理システム3000によれば、電池モジュール2000の間で第1識別子が重複している場合に、第1識別子の重複を解消するように、第1識別子の変更が自動で行われる。よって、上述した手動設定の際に生じる種々の問題を回避することができる。
【0119】
さらに本実施形態の情報処理システム3000では、各電池モジュール2000の第1識別子決定部2140が個々に第1識別子の決定を行う。そのため、或る1つの電池モジュール2000が他の電池モジュール2000の第1識別子を決定する方法と異なり、1つの電池モジュール2000に処理負荷が集中してしまうことを防ぐことができる。
【0120】
[実施形態3]
図16は、実施形態3に係る電池モジュール2000を例示するブロック図である。以下で説明する点を除き、実施形態3の電池モジュール2000は、実施形態1の電池モジュール2000と同様の機能を有する。
【0121】
実施形態3の電池モジュール2000は警告部2160を有する。警告部2160は、当該電池モジュール2000の第1識別子が他の電池モジュール2000の第1識別子と重複していると判定された場合に警告を出力する。この警告は、当該電池モジュール2000の第1識別子が他の電池モジュール2000の第1識別子と重複していることをユーザ(電池モジュール2000の管理者など)に通知するための警告である。
【0122】
警告部2160が警告を出力する方法は様々である。例えば警告部2160は、LED(light emitting diode)ランプを点灯させることにより、警告を出力する。また例えば、警告部2160は、ブザーやスピーカに音を出力させることによって警告を出力してもよい。
【0123】
<ハードウエア構成の例>
実施形態3の電池モジュール2000は、実施形態1と同様にコントローラ1000を用いて実現される(
図3参照)。さらに実施形態3の電池モジュール2000は、警告部2160による警告の出力を実現するためのハードウエア(LED ランプなど)と入出力インタフェース1100を介して接続されている。また本実施形態において、前述したストレージ1080に記憶される各プログラムモジュールには、本実施形態の電池モジュール2000の各機能を実現するプログラムが含まれる。
【0124】
<作用・効果>
本実施形態の情報処理システム3000によれば、或る電池モジュール2000の第1識別子が他の電池モジュール2000の第1識別子と重複している場合に警告が出力される。そのため、電池モジュール2000の管理者等が、その電池モジュール2000の第1識別子が他の第1識別子と重複していることを把握することができる。その結果、例えば電池モジュール2000の管理者等が電池モジュール2000の第1識別子を手動で変更するなどの対処をすることで、電池モジュール2000の間における第1識別子の重複を解消することができる。なお、本実施形態のように電池モジュール2000の間で第1識別子の重複があった場合に警告を出力する方法は、例えば電池モジュール2000の第1識別子が自動で変更されてしまうことを好まない運用ポリシーの下で電池モジュール2000が運用されているケースにおいて特に有用である。
【0125】
[実施形態4]
図17は、実施形態4に係る電池モジュール2000を例示するブロック図である。以下で説明する点を除き、実施形態4の電池モジュール2000は、実施形態2の電池モジュール2000と同様の機能を有する。
【0126】
実施形態4の電池モジュール2000は、情報処理システム3000からいずれかの電池モジュール2000が取り除かれたことを検出する機能を有する。そのために、実施形態4の電池モジュール2000は離脱検出部2220を有する。
【0127】
離脱検出部2220は、当該電池モジュール2000に他の電池モジュール2000と重複しない第1識別子が設定されている状態で動作する。具体的には、離脱検出部2220は、判定部2100によって当該電池モジュール2000の第1識別子が他の電池モジュール2000と重複していないと判定されたか、又は第1識別子決定部2140によって決定された第1識別子が当該電池モジュール2000に設定された後に動作する。以下、離脱検出部2220の具体的な動作を例示する。
【0128】
まず、情報処理システム3000に含まれる各電池モジュール2000の第1識別子の内で最小の第1識別子を持つ電池モジュール2000において、離脱検出部2220は、識別子情報送信部2020に定期的に識別子情報を送信させる。
【0129】
例えばこの電池モジュール2000は、判定部2100によって当該電池モジュール2000の第1識別子が他の電池モジュール2000と重複していないと判定されたとき、又は第1識別子決定部2140によって決定された第1識別子が当該電池モジュール2000に設定されたときに、所定時間後に離脱検出部2220を動作させるタイマ処理を設定する。またこの電池モジュール2000は、このタイマ処理によって離脱検出部2220が動作した後にも、再度同様のタイマ処理を設定する。この所定時間は、電池モジュール2000に予め設定されていてもよいし、電池モジュール2000からアクセス可能な記憶装置に記憶されていてもよい。
【0130】
それ以外の電池モジュール2000の離脱検出部2220は、所定条件を満たす識別子情報を受信したことに応じて、識別子情報送信部2020に識別子情報を送信させる。この所定条件は、「当該電池モジュール2000の第1識別子よりも小さくなおかつ当該電池モジュール2000の第1識別子に最も近い第1識別子を示す」という条件である。言い換えれば、或る識別子情報が送信された場合、その識別子情報に示される第1識別子の次に小さい第1識別子を持つ電池モジュール2000の離脱検出部2220が動作する。そのため、情報処理システム3000からいずれの電池モジュール2000も取り除かれていなければ、全ての電池モジュール2000によって順に識別子情報が送信される。
【0131】
一方で、或る電池モジュール2000が情報処理システム3000から取り除かれると、その電池モジュール2000の次に小さい第1識別子を持つ電池モジュール2000では、上記所定の条件を満たす識別子情報が受信されないために離脱検出部2220が動作しない。そこで離脱検出部2220を、「前述した所定条件を満たす識別子情報が受信されない場合、所定のタイミングで識別子情報を送信する」という構成とする。こうすることで、情報処理システム3000から取り除かれた電池モジュール2000以外の全ての電池モジュール2000から識別子情報が送信されるようになる。上記所定のタイミングは、例えば、直近に受信した識別子情報の受信時点から所定時間経過したタイミングである。この所定時間は、電池モジュール2000に予め設定されていてもよいし、電池モジュール2000からアクセス可能な記憶装置に記憶されていてもよい。
【0132】
離脱検出部2220は、各電池モジュール2000から受信した識別情報に示される第1識別子と、情報処理システム3000に含まれる各電池モジュール2000の第1識別子のリストを比較する(このリストの作成方法については後述する)。そして離脱検出部2220は、このリストに含まれている第1識別子の中に、受信したどの識別情報にも示されていない第1識別子がある場合、その第1識別子を持つ電池モジュール2000が情報処理システム3000から取り除かれたと判定する。このようにして、各電池モジュール2000は、情報処理システム3000から電池モジュール2000が取り除かれたことを検出し、さらには取り除かれた電池モジュール2000の第1識別子を割り出す。
【0133】
以下、具体例を用いて、本実施形態の電池モジュール2000の動作を説明する。
図18は、具体例の情報処理システム3000の構成例を示す図である。
図18(a)において、情報処理システム3000には電池モジュール2000−1から電池モジュール2000−5が含まれている。ここで、電池モジュール2000−1から電池モジュール2000−5には順に、0x01, 0x02, 0x03, 0x04, 0x05 という第1識別子が設定されているとする。また、各電池モジュール2000はそれぞれ、0x01 から 0x05 を示す第1識別子のリストを記憶しているとする。
【0134】
電池モジュール2000−1から電池モジュール2000−5の全てが情報処理システム3000に含まれている場合(
図18(a)参照)、電池モジュール2000−1から順に識別子情報が送信される。よって、上述した第1識別子のリストに示される各第1識別子は、いずれかの識別子情報に示されている。よって、各電池モジュール2000の離脱検出部2220は、情報処理システム3000から電池モジュール2000が取り除かれていないと判定する。
【0135】
一方、
図18の情報処理システム3000から電池モジュール2000−3を取り除いたとする。この状況を
図18(b)に示す。この場合、まず、電池モジュール2000−1、電池モジュール2000−2の順に識別子情報の送信が行われる。しかし、電池モジュール2000−3からは識別子情報が送信されない。
【0136】
電池モジュール2000−3によって送信されるはずだった識別子情報は、第1識別子として 0x03 を示す識別子情報である。そしてこの識別子情報は、電池モジュール2000−4にとって上述した所定条件を満たす識別子情報である。そのため電池モジュール2000−4の離脱検出部2220は、所定のタイミングで識別子情報を送信する。さらに電池モジュール2000−5は、電池モジュール2000−4によって送信された識別子情報を受信したことに応じて、識別子情報を送信する。
【0137】
そして、電池モジュール2000−3以外によって送信された各識別子情報を受信した後、各電池モジュール2000の離脱検出部2220は、受信した識別情報に示される第1識別子と、情報処理システム3000に含まれる各電池モジュール2000の第1識別子のリストを比較する。その結果、0x03 という第1識別子を示す識別子情報を受信していないことを割り出す。これにより、各電池モジュール2000の離脱検出部2220は、電池モジュール2000−3が情報処理システム3000から取り除かれたことを検出する。
【0138】
<第1識別子のリストについて>
本実施形態では、前提として、各電池モジュール2000がそれぞれ、情報処理システム3000に含まれる各電池モジュール2000に設定されている第1識別子が示されているリストを保持しているとする。このリストは、実施形態2で説明した第1識別子決定部2140によって作成される。なお、このリストは、第1識別子の一覧を示していれば
よく、第1識別子と電池モジュール2000との対応付けを示している必要はない。
【0139】
実施形態1で説明したように、各電池モジュール2000は、第1識別子を決定するための一連の処理において、他の各電池モジュール2000から識別子情報を受信する。そして、第1識別子決定部2140は、情報処理システム3000に含まれている電池モジュール2000の個数を、受信した識別子情報の数(当該電池モジュール2000を除く電池モジュール2000の総数)に1を加えた数として算出することができる。つまり第1識別子決定部2140は、情報処理システム3000に含まれている電池モジュール2000の総数を把握することができる。
【0140】
そこで第1識別子決定部2140は、第1識別子の昇順にソートした候補集合に含まれる第1識別子のうち、先頭から上記総数の第1識別子を示すリストを、前述したリストとして作成する。
【0141】
<作用・効果>
本実施形態の情報処理システム3000によれば、情報処理システム3000から電池モジュール2000が取り除かれたことを自動で把握することができる。
【0142】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の組み合わせ、又は上記以外の様々な構成を採用することもできる。
【0143】
以下、参考形態の例を付記する。
1. 複数の電池モジュールを有する情報処理システムであって、
各前記電池モジュールは、第1通信網によって他の全ての前記電池モジュールと通信可能であり、
各前記電池モジュールは、線形トポロジを構成する第2通信網を介して他の前記電池モジュールと通信可能であり、
前記電池モジュールは、
前記第1通信網を介し、他の全ての前記電池モジュールに対して識別子情報を送信する識別子情報送信手段を有し、
前記識別子情報は、その電池モジュールに設定されている前記第1通信網上の第1識別子を示すか、又はその電池モジュールに前記第1識別子が設定されていないことを示し、
他の前記電池モジュールによって送信された前記識別子情報を受信する識別子情報受信手段と、
前記第2通信網を介して、前記第2通信網上の第1方向において隣接する他の前記電池モジュールに対して第1通知を行う第1通知実行手段と、
前記第2通信網上の第2方向において隣接する他の前記電池モジュールによって行われる前記第1通知を検出する第1通知検出手段と、
全ての前記複数の電池モジュールの識別子情報送信手段によって識別子情報が送信されたことに応じ、他の各電池モジュールから受信した前記識別子情報を用いて、当該電池モジュールの前記第1識別子が、他の各電池モジュールの前記第1識別子と重複しているか否かを判定する判定手段と、を有し、
第1の前記電池モジュールの前記識別子情報送信手段は、当該第1の電池モジュールの前記第1通知検出手段によって前記第1通知が検出されたこと以外の所定の事象に応じて、前記識別子情報を送信し、
第1の前記電池モジュール以外の各前記電池モジュールの前記識別子情報送信手段は、前記第1通知検出手段によって前記第1通知が検出されたことに応じて、前記識別子情報を送信する、情報処理システム。
2. 前記電池モジュールは、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に、所定のルールに従ってその電池モジュールの前記第1識別子を他の前記電池モジュールと重複しない値に決定する第1識別子決定手段を有する、1.に記載の情報処理システム。
3. 前記所定のルールは、前記電池モジュールが識別子情報を送信した時点又は前記電池モジュールの製造番号に基づいて、その電池モジュールに設定する前記第1識別子を決定するルールである、2.に記載の情報処理システム。
4. 前記電池モジュールは、
前記第2通信網を介して、前記第2通信網上の第2方向において隣接する他の前記電池モジュールに対して第2通知を行う第2通知実行手段と、
前記第2通信網上の第1方向において隣接する他の前記電池モジュールによって行われる前記第2通知を検出する第2通知検出手段と、を有し、
前記第2通信網において前記第1方向の終端に位置する第2の電池モジュールは、前記識別子情報を送信した後に、前記判定手段による前記判定と、前記第2通知実行手段による前記第2通知とを行い、
前記第2の電池モジュール以外の前記電池モジュールは、前記第2通知検出手段によって前記第2通知が検出されたことに応じて、前記判定手段による前記判定と、前記第2通知実行手段による前記第2通知とを行う、2.又は3.に記載の情報処理システム。
5. 前記電池モジュールは、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に警告を出力する変更手段を有する、1.に記載の情報処理システム。
6. 前記第1通知検出手段は、受信した前記識別子情報を識別子情報記憶手段に記憶させ、
前記判定手段は、前記識別子情報記憶手段に記憶されている識別子情報を利用する、1.乃至5.いずれか一つに記載の情報処理システム。
7. 1.乃至6.いずれか一つに記載の情報処理システムが有する電池モジュール。
8. 複数の電池モジュールを有する情報処理システムによって実行される制御方法であって、
各前記電池モジュールは、第1通信網によって他の全ての前記電池モジュールと通信可能であり、
各前記電池モジュールは、線形トポロジを構成する第2通信網を介して他の前記電池モジュールと通信可能であり、
前記電池モジュールが、前記第1通信網を介し、他の全ての前記電池モジュールに対して識別子情報を送信する識別子情報送信ステップを有し、
前記識別子情報は、その電池モジュールに設定されている前記第1通信網上の第1識別子を示すか、又はその電池モジュールに前記第1識別子が設定されていないことを示し、
前記電池モジュールが、他の前記電池モジュールによって送信された前記識別子情報を受信する識別子情報受信ステップと、
前記電池モジュールが、前記第2通信網を介して、前記第2通信網上の第1方向において隣接する他の前記電池モジュールに対して第1通知を行う第1通知実行ステップと、
前記電池モジュールが、前記第2通信網上の第2方向において隣接する他の前記電池モジュールによって行われる前記第1通知を検出する第1通知検出ステップと、
前記電池モジュールが、全ての前記複数の電池モジュールの識別子情報送信ステップによって識別子情報が送信されたことに応じ、他の各電池モジュールから受信した前記識別子情報を用いて、当該電池モジュールの前記第1識別子が、他の各電池モジュールの前記第1識別子と重複しているか否かを判定する判定ステップと、を有し、
第1の前記電池モジュールの前記識別子情報送信ステップでは、当該第1の電池モジュールの前記第1通知検出ステップにおいて前記第1通知が検出されたこと以外の所定の事象に応じて、前記識別子情報を送信し、
第1の前記電池モジュール以外の各前記電池モジュールの前記識別子情報送信ステップでは、前記第1通知検出ステップにおいて前記第1通知が検出されたことに応じて、前記識別子情報を送信する、制御方法。
9. 前記電池モジュールが、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に、所定のルールに従ってその電池モジュールの前記第1識別子を他の前記電池モジュールと重複しない値に決定する第1識別子決定ステップを有する、8.に記載の制御方法。
10. 前記所定のルールは、前記電池モジュールが識別子情報を送信した時点又は前記電池モジュールの製造番号に基づいて、その電池モジュールに設定する前記第1識別子を決定するルールである、9.に記載の制御方法。
11. 前記電池モジュールが、前記第2通信網を介して、前記第2通信網上の第2方向において隣接する他の前記電池モジュールに対して第2通知を行う第2通知実行ステップと、
前記電池モジュールが、前記第2通信網上の第1方向において隣接する他の前記電池モジュールによって行われる前記第2通知を検出する第2通知検出ステップと、を有し、
前記第2通信網において前記第1方向の終端に位置する第2の電池モジュールは、前記識別子情報を送信した後に、前記判定ステップによる前記判定と、前記第2通知実行ステップによる前記第2通知とを行い、
前記第2の電池モジュール以外の前記電池モジュールは、前記第2通知検出ステップによって前記第2通知が検出されたことに応じて、前記判定ステップによる前記判定と、前記第2通知実行ステップによる前記第2通知とを行う、8.又は9.に記載の制御方法。
12. 前記電池モジュールが、その電池モジュールの前記第1識別子が他の前記電池モジュールの前記第1識別子と重複していると判定した場合に警告を出力する変更ステップを有する、8.に記載の制御方法。
13. 前記第1通知検出ステップにおいて、受信した前記識別子情報を識別子情報記憶手段に記憶させ、
前記判定ステップにおいて、前記識別子情報記憶手段に記憶されている識別子情報を利用する、8.乃至12.いずれか一つに記載の制御方法。
14. コンピュータに、8.乃至13.いずれか一つに記載の制御方法の各ステップを実行させるプログラム。