JP5300676B2 - 読取装置及びコンピュータプログラム及び読取方法 - Google Patents

読取装置及びコンピュータプログラム及び読取方法 Download PDF

Info

Publication number
JP5300676B2
JP5300676B2 JP2009219131A JP2009219131A JP5300676B2 JP 5300676 B2 JP5300676 B2 JP 5300676B2 JP 2009219131 A JP2009219131 A JP 2009219131A JP 2009219131 A JP2009219131 A JP 2009219131A JP 5300676 B2 JP5300676 B2 JP 5300676B2
Authority
JP
Japan
Prior art keywords
response
slots
slot
unit
identification data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009219131A
Other languages
English (en)
Other versions
JP2011070298A (ja
Inventor
敏久 亀丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009219131A priority Critical patent/JP5300676B2/ja
Publication of JP2011070298A publication Critical patent/JP2011070298A/ja
Application granted granted Critical
Publication of JP5300676B2 publication Critical patent/JP5300676B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、多数のICタグなどの応答装置から識別データを読み取る読取装置に関する。
ICタグなどの応答装置から識別データを読み取る場合、複数の応答装置が送信した識別データが衝突するのを避けるため、識別データを送信するスロットを複数用意する。応答装置は、複数のスロットのなかからランダムにスロットを選択し、選択したスロットを使用して、識別データを送信する。応答装置の数に比べてスロットの数が十分多ければ、衝突は発生せず、読取装置は、すべての識別データを正しく受信する。応答装置の数に比べてスロットの数が少な過ぎる場合、衝突が多発し、読取装置は、ほとんどの識別データを正しく受信できない。スロットの数が十分多いとも少な過ぎるとも言えない場合、一部で衝突が発生するので、読取装置は、ある程度の数の識別データを正しく受信する。読取装置は、識別データを正しく受信した応答装置に対して、識別データを送信しないよう指示したのち、もう一度、応答装置に識別データを送信させる。これを何度か繰り返すことにより、読取装置は、すべての識別データを正しく受信する。
最初からスロットの数を十分多くしておけば、1回でほとんどすべての識別データを正しく受信することができるが、スロットとして時分割されたタイムスロットを用いる場合、スロットの数を多くすると、通信にかかる時間が長くなる。このため、応答装置と通信するための時間が足りなくなる場合がある。
この課題を解決するため、前回の応答時における空きスロットの数や衝突の発生数などに基づいて、次回のスロット数を算出する方式がある。
特表2009−518746号公報
前回の応答時の衝突発生状況などに基づいて、次回のスロット数を算出する方式では、最初のラウンドのスロット数を算出することはできない。特に複数のアンテナを切り替えながら多数の応答装置の集団から識別データを読み取る場合、アンテナごとに適切なスロット数は異なる。また、同じアンテナでも、1回目と2回目とでは、適切なスロット数が異なる。
この発明は、例えば上記のような課題を解決するためになされたものであり、適切なスロット数を算出することにより、多数の応答装置の識別データを読み取るのにかかる時間を短くすることを目的とする。
この発明にかかる読取装置は、
複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットにより送信した応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取装置において、
上記複数の応答装置に対してデータを送信する送信装置と、上記複数の応答装置からデータを受信する受信装置と、データを処理する処理装置と、応答受信部と、スロット判定部と、応答数推定部と、スロット数決定部と、スロット数送信部とを有し、
上記応答受信部は、上記受信装置を用いて、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
上記スロット判定部は、上記応答受信部が識別データの受信に成功したか否かに基づいて、上記処理装置を用いて、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
上記応答数推定部は、上記スロット判定部が判定した判定結果に基づいて、上記処理装置を用いて、識別データを送信した応答装置の数を推定して推定応答数とし、
上記スロット数決定部は、上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
上記スロット数送信部は、上記送信装置を用いて、上記スロット数決定部が決定したスロット数を上記応答装置に対して送信することを特徴とする。
この発明にかかる読取装置によれば、スロット判定部が判定した判定結果に基づいて応答数推定部が推定した推定応答数に基づいて、スロット数決定部がスロット数を決定するので、スロット数を、応答装置の数に適した値にすることができ、すべての応答装置の識別データを読み取るのにかかる時間を短くすることができる。
実施の形態1における読取システム800の全体構成の一例を示すシステム構成図。 実施の形態1におけるアンテナ810a,810bの通信範囲710a,710bの一例を示す平面図。 実施の形態1における読取装置100のハードウェア構成の一例を示す図。 実施の形態1における読取装置100及びICタグ220の機能ブロックの構成の一例を示すブロック構成図。 実施の形態1における応答数推定部150及びスロット数決定部120の詳細ブロックの構成の一例を示す詳細ブロック図。 実施の形態1における推定テーブル記憶部155が記憶した推定応答数テーブルの一例を示す図。 実施の形態1におけるスロット数テーブル記憶部174が記憶したスロット数テーブルの一例を示す図。 実施の形態1における読取処理S500の流れの一例を示すフローチャート図。 実施の形態1におけるスロット数決定工程S520の流れの一例を示す詳細フローチャート図。 実施の形態1におけるスロット数決定工程S520の流れの別の例を示す詳細フローチャート図。 実施の形態1における関数fの一例を示すグラフ図。 実施の形態1におけるスロット数S及び応答数nと、読取スロット数の期待値Rとの関係の一例を示すグラフ図。 実施の形態1におけるスロット数S及び応答数nと、読取スロット数の期待値Rをスロット数Sで割った商との関係の一例を示すグラフ図。 実施の形態2における応答数推定部150の詳細ブロックの構成の一例を示す詳細ブロック図。 実施の形態2における推定テーブル記憶部155が記憶した推定応答数テーブルの一例を示す図。 実施の形態2におけるスロット数S及び応答数nと、値Dの期待値Dとの関係の一例を示すグラフ図。 応答数n及び空きスロット数Eまたは値Dと、発生確率との関係の一例を示すグラフ図。 実施の形態3における応答数推定部150及びスロット数決定部120の詳細ブロックの構成の一例を示す詳細ブロック図。 実施の形態3における応答数推定工程S550の流れの一例を示す詳細フローチャート図。 実施の形態3におけるスロット数決定工程S520の流れの一例を示す詳細フローチャート図。 実施の形態3における確率分布算出工程S560の流れの一例を示す詳細フローチャート図。 実施の形態3におけるスロット数算出工程S530の流れの一例を示す詳細フローチャート図。 総スロット数S及び応答数nと、空きスロット数E・読取スロット数R・競合スロット数Cの発生確率との関係の一例を示すグラフ図。
実施の形態1.
実施の形態1について、図1〜図13を用いて説明する。
図1は、この実施の形態における読取システム800の全体構成の一例を示すシステム構成図である。
読取システム800は、ホストコンピュータ850、読取装置100(リーダ装置)、複数のアンテナ810a,810b、ベルトコンベア820、赤外線照射装置831、赤外線受光装置832を有する。
ベルトコンベア820は、物品群200を載せて、物品群200を所定の方向に一定の速度で移動させる。なお、ベルトコンベア820は、物品群200を移動させるための構成の一例であり、物品群200を移動させるための構成は、ベルトコンベア820に限らず、他の構成であってもよい。
物品群200は、複数の物品210からなる。物品210は、例えば、工場から出荷される製品である。物品210は、例えば、ベルトコンベア820の進行方向に5列、高さ方向に6段、幅方向に2行というように規則正しく積み上げられている。この例では、1つの物品群200が、5×6×2=120個の物品210からなる。しかし、1つの物品群200に含まれる物品210の数は、その都度異なる可能性がある。以下、複数の物品210を区別する必要がある場合には、幅方向奥側から数えた行数x、進行方向前側から数えた列数y、高さ方向下側から数えた段数zを用いて「(x,y,z)」のように表記する。また、例えば、z段目の物品210すべてに言及したい場合は、行数x及び列数yを問わないという意味で「*」を用いて「(*,*,z)」のように表記する。
それぞれの物品210には、ICタグ220(応答装置)が付けられている。ICタグ220は、読み取りやすいように、例えば、物品群200の幅方向外側に付けられている。すなわち、幅方向奥側の物品210(1,*,*)には奥側に、幅方向手前側の物品210(2,*,*)には手前側に、それぞれICタグ220が付けられている。
赤外線照射装置831は、赤外線を照射する。赤外線受光装置832は、赤外線照射装置831が照射した赤外線を受光する。赤外線照射装置831が照射した赤外線を、物品群200が遮って赤外線受光装置832が赤外線を受光しなくなることにより、物品群200が検出できる。なお、赤外線照射装置831及び赤外線受光装置832は、物品群200を検出するための構成の一例であり、物品群200を検出するための構成は、赤外線照射装置831及び赤外線受光装置832に限らず、他の構成であってもよい。
複数のアンテナ810a,810bは、電気信号を入力して電波として放射し、ICタグ220が放射した電波を受信して電気信号として出力する。複数のアンテナ810a,810bは、物品群200に含まれるICタグ220と効率良く通信するため、それぞれ異なる通信範囲を有する。例えば、アンテナ810aは、ベルトコンベア820の幅方向奥側に設置され、主に幅方向奥側の物品210(1,*,*)に付けられたICタグ220と通信し、アンテナ810bは、ベルトコンベア820の幅方向手前側に設置され、主に幅方向手前側の物品210(2,*,*)に付けられたICタグ220と通信する。
読取装置100(RFIDリーダライタ装置)は、ICタグ220の識別データを読み取り、読み取った識別データをホストコンピュータ850に対して出力する。読取装置100は、赤外線照射装置831及び赤外線受光装置832により物品群200を検出すると、ICタグ220に対して識別データの送信を要求するメッセージを生成し、生成したメッセージにより変調した電気信号を生成して、アンテナ810a,810bを介して、ICタグ220に対して送信する。これに対する応答として、ICタグ220が、記憶したICタグ220自身の識別データにより変調した電波を送信すると、読取装置100は、アンテナ810a,810bを介してこれを受信し、応答したICタグ220の識別データを取得する。
ホストコンピュータ850は、読取装置100が読み取った識別データを入力し、入力した識別データを利用した処理をする。例えば、ホストコンピュータ850は、出荷した物品210を把握することにより、在庫管理を行う。
図2は、この実施の形態におけるアンテナ810a,810bの通信範囲710a,710bの一例を示す平面図である。
読取装置100がアンテナ810aを介してICタグ220と通信する場合、通信範囲710aのなかにあるICタグ220が応答する。また、読取装置100がアンテナ810bを介してICタグ220と通信する場合、通信範囲710bのなかにあるICタグ220が応答する。例えば、物品群200が図示した位置にある場合、幅方向奥側・進行方向3列目〜5列目の物品210(1,3,*)(1,4,*)(1,5,*)に付けられた18個のICタグ220が、アンテナ810aを介して通信可能である。幅方向手前側・進行方向3列目〜5列目の物品210(2,3,*)(2,4,*)(2,5,*)に付けられた18個のICタグ220が、アンテナ810bを介して通信可能である。
なお、通信範囲は、電波の強度などの条件によって定まるものであり、厳密なものではない。ICタグ220が通信範囲のなかにあっても応答しない場合があるし、逆に、ICタグ220が通信範囲の外にあっても応答する場合がある。
図3は、この実施の形態における読取装置100のハードウェア構成の一例を示す図である。
読取装置100は、例えば、処理装置(以下「CPU」と呼ぶ。)911、バス912、不揮発性記憶装置(以下「ROM」と呼ぶ。)913、揮発性記憶装置(以下「RAM」と呼ぶ。)914、固定ディスク装置(以下「HDD」と呼ぶ。)920、液晶表示装置(以下「LCD」と呼ぶ。)901、キーボード(以下「K/B」と呼ぶ。)902、ネットワーク通信装置915、無線通信装置916、アンテナ選択装置917、物体検出装置918を有する。
CPU911は、ROM913やHDD920が記憶したプログラムを実行することにより、RAM914やHDD920が記憶したデータを処理し、LCD901・K/B902・ネットワーク通信装置915・無線通信装置916・アンテナ選択装置917・物体検出装置918などを制御する。
バス912は、CPU911・ROM913・RAM914・HDD920・ネットワーク通信装置915・無線通信装置916・アンテナ選択装置917・物体検出装置918などを接続する。
ROM913・RAM914・HDD920(記憶装置)は、CPU911が実行するプログラムやCPU911が処理するデータを記憶する。
LCD901は、CPU911による制御にしたがい、CPU911が出力したデータなどを表示する。
K/B902は、CPU911による制御にしたがい、利用者の操作を入力し、入力した操作を表わすデータをCPU911に通知する。
ネットワーク通信装置915は、CPU911による制御にしたがい、CPU911が出力したデータをホストコンピュータ850に対して送信し、ホストコンピュータ850が送信したデータを受信してCPU911に通知する。
アンテナ選択装置917は、CPU911による制御にしたがい、複数のアンテナ810a,810bのなかから、ICタグ220との通信に使用するアンテナを1つ選択する。複数のアンテナ810a,810bの通信範囲には重なっている部分があるので、複数のアンテナ810a,810bを同時に使用すると、混信してICタグ220と正常に通信できない可能性がある。複数のアンテナ810a,810bを同時に使用せず、同時に使用するアンテナを1つに限ることにより、正常にICタグ220と通信できる。なお、複数のアンテナのなかに通信範囲が重なっていないアンテナがある場合には、通信範囲が重なっていないアンテナを同時に使用する構成としてもよい。
無線通信装置916(送信装置・受信装置)は、CPU911による制御にしたがい、アンテナ選択装置917が選択したアンテナを介して、CPU911が出力したデータをICタグ220に対して送信し、ICタグ220が送信したデータを受信してCPU911に通知する。
物体検出装置918は、CPU911による制御にしたがい、赤外線照射装置831・赤外線受光装置832を制御して、物品群200の存否を検出し、検出結果を表わすデータをCPU911に通知する。
以下に説明する読取装置100の機能ブロックは、原則として、CPU911がプログラムを実行することにより実現される。なお、機能ブロックの実現方式は、これに限らず、アナログ回路・デジタル回路・集積回路などの専用ハードウェアや汎用ハードウェアを用いるなど、他の方式により、機能ブロックを実現する構成としてもよい。
図4は、この実施の形態における読取装置100及びICタグ220の機能ブロックの構成の一例を示すブロック構成図である。
読取装置100は、開始判定部111、アンテナ切替部112、完了判定部113、スロット数決定部120、要求送信部131、応答受信部132、了解送信部133、識別出力部134、スロット判定部140、応答数推定部150を有する。
ICタグ220は、要求受信部221、スロット選択部222、識別送信部223、了解受信部224、了解記憶部225を有する。
開始判定部111は、物体検出装置918が検出した検出結果に基づいて、CPU911を用いて、物品群200の存否を判定する。開始判定部111は、物品群200が存在すると判定した場合に、CPU911を用いて、ICタグ220の識別データの読み取りを開始すると判定する。
完了判定部113は、CPU911を用いて、ICタグ220の識別データの読み取りが完了したか否かを判定する。完了判定部113は、例えば、後述するスロット判定部140の判定結果に基づいて、CPU911を用いて、識別データを送信したICタグ220が存在するか否かを判定する。完了判定部113は、例えば、所定の回数のサイクルの間、識別データを送信したICタグ220が存在しないと判定した場合に、CPU911を用いて、ICタグ220の識別データの読み取りが完了したと判定する。なお「サイクル」については後述する。
アンテナ切替部112は、ICタグ220の識別データの読み取りを開始すると開始判定部111が判定してから、ICタグ220の識別データの読み取りが完了したと完了判定部113が判定するまでの間、CPU911を用いて、アンテナ選択装置917を制御し、ICタグ220との通信にすべてのアンテナを使用するよう、使用するアンテナを順に切り替える。アンテナ切替部112が使用するアンテナを切り替えて、すべてのアンテナを1回ずつ使用するまでの期間を、1回の「サイクル」と呼ぶ。アンテナ切替部112は、ICタグ220の識別データの読み取りを開始すると開始判定部111が判定した場合に、CPU911を用いて、最初のサイクルを開始し、例えば所定の順番で、アンテナを切り替えていく。1回のサイクルが終了した時点で、ICタグ220の識別データの読み取りがまだ完了していないと完了判定部113が判定した場合、アンテナ切替部112は、CPU911を用いて、次のサイクルを開始する。アンテナ切替部112は、ICタグ220の識別データの読み取りが完了したと完了判定部113が判定するまで、これを繰り返す。
スロット数決定部120は、CPU911を用いて、アンテナ切替部112が切り替えたアンテナを介した通信に使用するスロットの数を決定する。なお「スロット」については後述する。
要求送信部131(スロット数送信部)は、スロット数決定部120が決定したスロット数に基づいて、CPU911を用いて、ICタグ220に対して識別データの送信を要求するデータ(以下「識別要求メッセージ」と呼ぶ。)を生成する。識別要求メッセージは、スロット数決定部120が決定したスロット数を含む。要求送信部131は、CPU911を用いて、無線通信装置916を制御し、生成した識別要求メッセージをICタグ220に対して送信する。
ここで「スロット」について説明する。
通信範囲のなかには通常複数のICタグ220があるので、識別要求メッセージに対する応答としてICタグ220が送信した識別データが混信しないようにする必要がある。スロットは複数あり、それぞれのICタグ220が異なるスロットを使用して識別データを送信すれば、混信せず、ICタグ220が送信した識別データを読取装置100が正しく受信することができる。例えば、時分割多重化方式であれば、スロットは、ICタグ220が識別データを送信するタイミングである。なお、多重化方式は、時分割多重化方式に限らず、例えば周波数多重化方式など、他の多重化方式であってもよい。多重化方式が周波数多重化方式であれば、スロットは、ICタグ220が識別データを送信する電波の周波数である。
ICタグ220において、要求受信部221は、読取装置100が送信した識別要求メッセージを受信する。スロット選択部222は、要求受信部221が識別要求メッセージを受信し、後述する了解記憶部225が了解メッセージを受信したことを記憶していない場合、識別要求メッセージに含まれるスロット数に基づいて、識別データの送信に使用するスロットをランダムに選択する。
識別送信部223は、スロット選択部222が選択したスロットを使用して、ICタグ220自身の識別データを送信する。
読取装置100において、応答受信部132は、CPU911を用いて、無線通信装置916を制御し、ICタグ220が送信した識別データを受信する。
上述したように、あるスロットを選択したICタグ220が1つだけなら、応答受信部132は、ICタグ220が送信した識別データを正しく受信するが、2つ以上のICタグ220が同じスロットを選択した場合、応答受信部132は、識別データを正しく受信できない。ICタグ220は、他のICタグ220と話し合ってスロットを選択するのではないから、あるICタグ220が他のICタグ220と異なるスロットを選択するか否かは、確率的な問題である。スロット数が多ければ多いほど、あるICタグ220が他のICタグ220と異なるスロットを選択する確率は高くなる。また、通信範囲のなかにあるICタグ220の数が多ければ、その分、あるICタグ220が他のICタグ220と同じスロットを選択する確率が高くなるので、スロット数を多くする必要がある。しかし、時分割多重化されたスロットを用いる場合、スロット数を多くすると1回の通信にかかる時間が長くなる。この例のように、物品群200が一定の速度で移動している場合、ICタグ220の識別データを読み取るためにかけられる時間が限られている。このため、スロット数をむやみに多くすることはできない。
了解送信部133は、ICタグ220が送信した識別データを応答受信部132が正しく受信した場合、応答受信部132が受信した識別データに基づいて、CPU911を用いて、その識別データを正しく受信したことを表わすデータ(以下「了解メッセージ」と呼ぶ。)を生成する。了解メッセージは、応答受信部132が受信した識別データを含む。了解送信部133は、CPU911を用いて、無線通信装置916を制御し、生成した了解メッセージをICタグ220に対して送信する。
ICタグ220において、了解受信部224は、読取装置100が送信した了解メッセージを受信する。了解記憶部225は、了解受信部224が受信した了解メッセージに含まれる識別データがICタグ220自身の識別データと一致した場合、了解メッセージを受信したことを記憶する。
これにより、ICタグ220の識別データを読取装置100が正しく受信した場合、ICタグ220は、次回以降の識別要求メッセージに対して識別データを送信しない。こうして、識別データを送信するICタグ220の数が徐々に減っていく。
なお、了解記憶部225は、ある程度の時間のみ、了解メッセージを受信したことの記憶を保持し、それ以上の時間が経過した場合、了解メッセージを受信したことを忘れる。了解メッセージを受信したことの記憶を了解記憶部225が保持する時間は、少なくとも、1回のサイクルにかかる時間よりも長く、了解記憶部225は、一連の通信の間、了解メッセージを受信したことの記憶を保持する。これにより、読取装置100との一連の通信が終わり、また新たに識別要求メッセージを受信した場合、ICタグ220は、識別データを送信する。例えば、ICタグ220が受信した電波からエネルギーを得て動作するパッシブ型である場合、了解記憶部225は、揮発性メモリを用いて、了解メッセージを受信したことを記憶する。ICタグ220が通信範囲の外に出てエネルギーの供給が絶たれ、所定の時間が経過すると、揮発性メモリが記憶したデータは消去されるので、了解記憶部225は、了解メッセージを受信したことを忘れる。
読取装置100において、識別出力部134は、ICタグ220が送信した識別データを応答受信部132が正しく受信した場合、CPU911を用いて、ネットワーク通信装置915を制御し、応答受信部132が受信した識別データをホストコンピュータ850に対して通知する。
なお、識別出力部134が識別データを通知するタイミングは、例えば、応答受信部132が識別データを正しく受信するたびに五月雨式に通知する構成であってもよいし、識別データの読み取りが完了したのちにまとめて通知する構成であってもよい。
スロット判定部140は、複数のスロットの各スロットについて、応答受信部132が識別データの受信に成功したか否かに基づいて、CPU911を用いて、そのスロットの種類を判定する。スロットの種類には、空きスロット・読取スロット・競合スロットの3種類がある。「空きスロット」とは、そのスロットを使用して識別データを送信したICタグ220が存在しないスロットのことである。「読取スロット」とは、そのスロットを使用して識別データを送信したICタグ220が1つだけであり、ICタグ220が送信した識別データを応答受信部132が正しく受信したスロットのことである。「競合スロット」とは、そのスロットを使用して識別データを送信したICタグ220が複数あり、ICタグ220が送信した識別データを応答受信部132が正しく受信できなかったスロットのことである。
応答数推定部150は、スロット判定部140が判定した判定結果に基づいて、CPU911を用いて、識別データを送信したICタグ220の数(以下「応答数n」と呼ぶ。)を推定する。競合スロットを使用して識別データを送信したICタグ220の数は、2つとは限らず、3つかもしれないし、それ以上かもしれない。応答数推定部150は、CPU911を用いて、その数を推定し、識別データを送信したICタグ220の総数を推定する。
上述したように、識別要求メッセージに応答するICタグ220の数が多ければスロット数を多くする必要がある。読取装置100は、識別要求メッセージに応答するICタグ220の数を前もって知ることができないが、2回目以降のサイクルでは、それより前のサイクルにおける応答に基づいて応答数推定部150が推定した応答数(以下「推定応答数n」と呼ぶ。)を用いて、識別要求メッセージに応答するICタグ220の数を予測することができる。
スロット数決定部120は、1回目のサイクルにおいて、例えばあらかじめ定められた所定の数をスロット数とする。これに対し、スロット数決定部120は、2回目以降のサイクルにおいて、前回のサイクルにおいて応答数推定部150が推定した推定応答数に基づいて、CPU911を用いて、今回のサイクルにおいて識別要求メッセージに応答するICタグ220の数を予測し、予測した数(以下「予測応答数n」と呼ぶ。)に基づいて、最適なスロット数を算出する。
図5は、この実施の形態における応答数推定部150及びスロット数決定部120の詳細ブロックの構成の一例を示す詳細ブロック図である。
応答数推定部150は、総数計数部151、空き計数部152、読取計数部153、推定テーブル記憶部155、推定値算出部156を有する。
スロット数決定部120は、経過時間算出部121、増加数算出部122、予測値算出部123、最大残数算出部124、上限応答数算出部125、予測応答数算出部126、スロット数算出部127、増加率記憶部171、最大総数記憶部172、最大応答数記憶部173、スロット数テーブル記憶部174を有する。
総数計数部151は、スロット判定部140が判定した判定結果に基づいて、CPU911を用いて、今回の識別要求メッセージに対してICタグ220が応答し得たスロットの総数(以下「総スロット数S」と呼ぶ。)を数える。なお、総数計数部151が総スロット数Sを数えるのではなく、スロット数決定部120が決定したスロット数を入力して、総スロット数Sとする構成としてもよい。
空き計数部152は、スロット判定部140が判定した判定結果に基づいて、CPU911を用いて、今回の識別要求メッセージに対する応答における空きスロットの数(以下「空きスロット数E」と呼ぶ。)を数える。
読取計数部153は、スロット判定部140が判定した判定結果に基づいて、CPU911を用いて、今回の識別要求メッセージに対する応答における読取スロットの数(以下「読取スロット数R」と呼ぶ。)を数える。
なお、今回の識別要求メッセージに対する応答における競合スロットの数(以下「競合スロット数C」と呼ぶ。)と、空きスロット数Eと、読取スロット数Rと、総スロット数Sとの間には、S=E+R+Cという関係が成り立つ。このため、例えば空き計数部152に代えて、競合計数部と空き算出部とを設け、空き計数部152が空きスロット数Eを数える代わりに、競合計数部が競合スロット数Cを数え、空き算出部が、総スロット数Sから読取スロット数Rと競合スロット数Cとの合計を差し引いた差S−(R+C)を算出して、空きスロット数Eとする構成としてもよい。
推定テーブル記憶部155は、あらかじめ、HDD920を用いて、推定応答数テーブルを記憶している。推定応答数テーブルは、総スロット数Sと、空きスロット数Eとに基づいて、応答数を推定するためのテーブルである。
図6は、この実施の形態における推定テーブル記憶部155が記憶した推定応答数テーブルの一例を示す図である。
空きスロット数611は、空きスロット数Eを表わす。総スロット数612は、総スロット数Sを表わす。推定応答数613は、空きスロット数Eが左端の空きスロット数611と一致し、総スロット数Sが上端の総スロット数612と一致する場合における推定応答数を表わす。
例えば、空きスロット数Eが7、総スロット数Sが16である場合、推定応答数は13となる。また、空きスロット数Eが30、総スロット数Sが64である場合、推定応答数は48となる。
図5に戻り、詳細ブロックの説明を続ける。
推定値算出部156は、総数計数部151が数えた総スロット数Sと、空き計数部152が数えた空きスロット数Eとに基づいて、CPU911を用いて、推定テーブル記憶部155が記憶した推定応答数テーブルを検索し、推定応答数nを算出する。
なお、総スロット数Sと空きスロット数Eとから推定応答数を算出するための構成は、推定応答数テーブルを用いる構成に限らず、他の構成であってもよい。例えば、総スロット数Sと空きスロット数Eとから推定応答数を算出する数式・関数・サブルーチンなどを用いる構成としてもよい。
スロット数決定部120は、前回のサイクルについて応答数推定部150が推定した推定応答数に基づいて、今回のサイクルのスロット数を決定する。
経過時間算出部121は、経過時間tを算出する。経過時間tの開始時刻は、今回のサイクルにおいてアンテナ切替部112がこれから切り替える切り替え後のアンテナを前回のサイクルで使用して識別要求メッセージを送信した時刻である。経過時間tの終了時刻は、今回のサイクルで同じアンテナを使用して識別要求メッセージを送信する時刻である。経過時間tの終了時刻は未来の時刻であるが、経過時間算出部121が経過時間tを算出してから実際に識別要求メッセージを送信するまでの時間が一定であると仮定すれば、経過時間算出部121は、経過時間tの開始時刻から現在時刻までの時間に基づいて、経過時間tを算出することができる。なお、経過時間算出部121は、例えば、タイマーを用いて経過時間tを計測する構成であってもよいし、識別要求メッセージや了解メッセージを送信するのに必要な時間や総スロット数・読取スロット数などから、経過時間tを計算により求める構成であってもよい。
増加率記憶部171は、あらかじめ、HDD920を用いて、応答増加率ρを記憶している。応答増加率ρとは、アンテナの通信範囲のなかに新たに入ってくるICタグ220の数を算出するためのパラメータである。例えば、応答増加率ρは、単位時間当たり、アンテナの通信範囲のなかに新たに入ってくるICタグ220の数を表わす。応答増加率ρは、例えばベルトコンベア820の速度など、読取システム800の運用条件により定まる定数である。増加率記憶部171は、あらかじめ設定された値を応答増加率ρとして記憶している。
物品群200は、一定の速度で移動しているので、アンテナの通信範囲のなかに新たに入ってくるICタグ220の数(以下「増加数Δn」と呼ぶ。)は、経過時間に比例する。例えば、物品群200が物品210一列分移動するのにかかる時間が1秒で、物品210を積み重ねた段数が6段であれば、1秒当たり6個のICタグ220が新たにアンテナの通信範囲のなかに入ってくることになる。物品210を積み重ねた段数は、必ずしも明らかではないが、アンテナの通信範囲のなかにあるICタグ220の数に比例すると考えられる。アンテナの通信範囲のなかにあるICタグ220のなかには、既に了解メッセージを受信したなどの理由により識別要求メッセージに応答しないICタグ220もあるが、前回のサイクルにおいて識別要求メッセージに応答したICタグ220の数からおおよその推定は可能である。
増加数算出部122は、前回のサイクルにおいて同じアンテナを使用して送信した識別要求メッセージに対する応答に基づいて推定値算出部156が推定した推定応答数nと、経過時間算出部121が算出した経過時間tと、増加率記憶部171が記憶した応答増加率ρとに基づいて、CPU911を用いて、増加数Δnを算出する。例えば、増加数算出部122は、CPU911を用いて、推定応答数nと、経過時間tと、応答増加率ρとの積n・t・ρを算出して、増加数Δnとする。
なお、上述したように、応答数nは、アンテナの通信範囲のなかにあるICタグ220の数に比例しないので、増加数算出部122は、推定応答数nを使用せず、経過時間tと応答増加率ρとの積を算出して増加数Δnとする構成としてもよい。あるいは、総経過時間算出部と総読取数算出部とを設け、総経過時間算出部が、ICタグ220の識別データの読み取りを開始してからの経過時間(以下「総経過時間T」と呼ぶ。)を算出し、総読取数算出部が、ICタグ220の識別データの読み取りを開始してから正しく受信できた識別データの総数(以下「総読取数ΣR」と呼ぶ。)を算出し、増加数算出部122が、総読取数ΣRを総経過時間Tで割った商に、経過時間tと応答増加率ρとの積を乗じた積ΣR・ρ・t/Tを算出して、増加数Δnとする構成としてもよい。
なお、当然のことながら、アンテナの通信範囲から外に出て行くICタグ220も存在する。しかし、アンテナの通信範囲から外に出て行くICタグ220は、その前に、アンテナの通信範囲のなかに十分な時間存在していたはずであるから、既に読取装置100が識別データを正しく読み取り、識別要求メッセージに対して応答しなくなっている。したがって、アンテナの通信範囲から外に出て行くICタグ220の数は、今回の識別要求メッセージに対して応答するICタグ220の数に影響しない。
予測値算出部123は、推定値算出部156が推定した推定応答数nと、読取計数部153が数えた読取スロット数Rと、増加数算出部122が算出した増加数Δnに基づいて、CPU911を用いて、予測応答数nを算出する。例えば、予測値算出部123は、CPU911を用いて、推定応答数nから読取スロット数Rを差し引いた差と増加数Δnとの和n−R+Δnを算出して、予測応答数nとする。
最大総数記憶部172は、あらかじめ、HDD920を用いて、最大総数を記憶している。最大総数とは、物品群200のなかに含まれるICタグ220の数の上限のことである。例えば、物品群200の大きさの上限や物品210一つ当たりの大きさなどから、一つの物品群200に含まれる物品210の数の上限が定まる。最大総数は、このような読取システム800の運用条件によって定まる定数である。最大総数記憶部172は、あらかじめ設定された値を最大総数として記憶している。
最大残数算出部124は、最大総数記憶部172が記憶した最大総数と、読取計数部153が数えた読取スロット数とに基づいて、CPU911を用いて、最大残数を算出する。最大残数とは、物品群200のなかに含まれるICタグ220のうち、識別データをまだ正しく読み取られていないICタグ220の数の上限のことである。例えば、最大残数算出部124は、CPU911を用いて、ICタグ220の識別データの読み取りを開始して以降、読取計数部153が数えた読取スロット数を積算して、識別データを読み取ったICタグ220の総読取数ΣRを算出する。最大残数算出部124は、CPU911を用いて、最大総数記憶部172が記憶した最大総数から、算出した総読取数ΣRを差し引いた差を算出して、最大残数とする。
最大総数は、読取システム800の運用上定められた値であり、総読取数ΣRは、実際に識別データを読み取ったICタグ220の数であるから、物品群200に含まれるICタグ220のうち、まだ識別データを読み取られていないICタグ220の数は、最大残数以下である。したがって、今回の識別要求メッセージに対して、最大残数を超える数のICタグ220が応答することはあり得ない。
最大応答数記憶部173は、あらかじめ、HDD920を用いて、最大応答数を記憶している。最大応答数とは、1回の識別要求メッセージに対して応答するICタグ220の数の上限のことである。例えば物品210一つ当たりの大きさやアンテナの通信範囲の大きさなどから、アンテナの通信範囲のなかに存在し得るICタグ220の数の上限が定まる。最大応答数は、このような読取システム800の運用条件によって定まる定数である。最大応答数記憶部173は、あらかじめ設定された値を最大応答数として記憶している。アンテナの通信範囲のなかに存在し得るICタグ220の数は、最大応答数以下であるから、今回の識別要求メッセージに対して、最大応答数を超える数のICタグ220が応答することはあり得ない。
上限応答数算出部125は、最大残数算出部124が算出した最大残数と、最大応答数記憶部173が記憶した最大応答数とに基づいて、CPU911を用いて、最大残数と最大応答数とのうち小さいほうを求めて、上限応答数とする。今回の識別要求メッセージに対して、上限応答数を超える数のICタグ220が応答することはあり得ない。
なお、各アンテナの通信範囲にICタグ220が均等に配置され、各アンテナが読むべきICタグ220の数がほぼ同じであると仮定できる場合、例えば以下のような構成としてもよい。上限応答数算出部125は、CPU911を用いて、最大残数算出部124が算出した最大残数をアンテナ810a,810bの数で割った商を算出してアンテナ当たり最大残数とする。上限応答数算出部125は、アンテナ当たり最大残数と最大応答数とのうち小さいほうを、上限応答数とする。
予測応答数算出部126は、上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、予測値算出部123が算出した予測応答数nを修正する。上述したように、今回の識別要求メッセージに対して、上限応答数を超える数のICタグ220が応答することはあり得ない。このため、予測値算出部123が算出した予測応答数nが上限応答数より大きい場合、予測応答数算出部126は、CPU911を用いて、予測応答数nを修正し、上限応答数を予測応答数nとする。
スロット数テーブル記憶部174は、あらかじめ、HDD920を用いて、スロット数テーブルを記憶している。スロット数テーブルとは、予測応答数nに基づいて、最適なスロット数を算出するためのテーブルである。
図7は、この実施の形態におけるスロット数テーブル記憶部174が記憶したスロット数テーブルの一例を示す図である。
予測応答数621は、予測応答数nの範囲の下限を表わす。スロット数622は、予測応答数nが、左端の予測応答数621以上である場合におけるスロット数を表わす。
図5に戻り、詳細ブロックの説明を続ける。
スロット数算出部127は、予測応答数算出部126が算出した予測応答数nに基づいて、CPU911を用いて、スロット数テーブル記憶部174が記憶したスロット数テーブルを検索して、スロット数を算出する。例えば、スロット数算出部127は、CPU911を用いて、スロット数テーブル記憶部174が記憶したスロット数テーブルを上から順に検索して、予測応答数算出部126が算出した予測応答数nが、予測応答数621以上となる行を探し、その行のスロット数622を取得して、スロット数とする。
なお、予測応答数nからスロット数を算出するための構成は、スロット数テーブルを用いる構成に限らず、他の構成であってもよい。例えば、予測応答数nからスロット数を算出する数式・関数・サブルーチンなどを用いる構成であってもよい。
図8は、この実施の形態における読取処理S500の流れの一例を示すフローチャート図である。
読取処理S500において、読取装置100は、物品群200に含まれるすべてのICタグ220の識別データを読み取る。読取装置100は、開始判定工程S511、アンテナ切替工程S512、スロット数決定工程S520、要求送信工程S541、応答受信工程S542、スロット判定工程S543、了解送信工程S544、終了判定工程S545、スロット更新工程S546、完了判定工程S547、応答数推定工程S550を実行する。また、ICタグ220は、要求受信工程S581、了解判定工程S582、スロット選択工程S583、スロット待ち工程S584、識別送信工程S585、了解受信工程S586、了解記憶工程S587を実行する。
まず、読取装置100の側の処理について説明する。
開始判定工程S511において、開始判定部111は、CPU911を用いて、物体検出装置918を制御し、所定の位置に物品群200が存在するか否かを判定する。
所定の位置に物品群200が存在すると開始判定部111が判定した場合、読取装置100は、ICタグ220の識別データの読み取りを開始するため、アンテナ切替工程S512へ進む。
所定の位置に物品群200が存在しない開始判定部111がと判定した場合、読取装置100は、開始判定工程S511を繰り返し、物品群200の到着を待つ。
アンテナ切替工程S512において、アンテナ切替部112は、CPU911を用いて、アンテナ選択装置917を制御し、ICタグ220との通信に使用するアンテナを切り替える。例えば、その前に使用していたアンテナがアンテナ810aである場合、アンテナ切替部112は、使用するアンテナをアンテナ810bに切り替え、逆に、その前に使用していたアンテナがアンテナ810bである場合、アンテナ切替部112は、使用するアンテナをアンテナ810aに切り替える。
アンテナが3つ以上ある場合は、例えば、使用する順序をあらかじめ定めておく。その前に使用していたアンテナが1番目のアンテナである場合、アンテナ切替部112は、使用するアンテナを2番目のアンテナに切り替える。その前に使用していたアンテナが2番目のアンテナである場合、アンテナ切替部112は、使用するアンテナを3番目のアンテナに切り替える。その前に使用していたアンテナが最後のアンテナである場合、アンテナ切替部112は、使用するアンテナを1番目のアンテナに切り替える。
なお、ICタグ220との通信を開始した直後の場合、最初に使用するアンテナをあらかじめ定めておき、その前に使用していたアンテナにかかわらず、アンテナ切替部112は、使用するアンテナをあらかじめ定めたアンテナに切り替える構成としてもよい。
スロット数決定工程S520において、スロット数決定部120は、CPU911を用いて、今回の識別要求メッセージにおけるスロット数を決定する。
要求送信工程S541において、要求送信部131は、CPU911を用いて、スロット数決定工程S520でスロット数決定部120が決定したスロット数を含む識別要求メッセージを生成する。要求送信部131は、CPU911を用いて、無線通信装置916を制御し、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナを介して、そのアンテナの通信範囲のなかに存在するICタグ220に対して、識別要求メッセージを送信する。
また、総数計数部151は、RAM914を用いて、総スロット数Sとして0を記憶する。空き計数部152は、RAM914を用いて、空きスロット数Eとして0を記憶する。読取計数部153は、RAM914を用いて、読取スロット数Rとして0を記憶する。
応答受信工程S542において、応答受信部132は、CPU911を用いて、無線通信装置916を制御し、要求送信工程S541で要求送信部131が送信した識別要求メッセージに対する応答としてICタグ220が送信した識別データを受信する。現在のスロットを使用して識別データを送信したICタグ220が存在しなければ、応答受信部132は、識別データを受信しない。また、現在のスロットを使用して識別データを送信したICタグ220が複数存在する場合、混信により、応答受信部132は、識別データを正しく受信しない。現在のスロットを使用して識別データを送信したICタグ220がただ1つだけ存在する場合、応答受信部132は、識別データを正しく受信する。
スロット判定工程S543において、スロット判定部140は、CPU911を用いて、応答受信工程S542における応答受信部132の受信の成否に基づいて、現在のスロットが空きスロットであるか、読取スロットであるか、競合スロットであるかを判定する。
スロット判定部140による判定の結果にかからわず、総数計数部151は、CPU911を用いて、総スロット数Sに1を加え、RAM914を用いて記憶する。
現在のスロットが空きスロットであるとスロット判定部140が判定した場合、空き計数部152は、CPU911を用いて、空きスロット数Eに1を加え、RAM914を用いて記憶する。
現在のスロットが読取スロットであるとスロット判定部140が判定した場合、読取計数部153は、CPU911を用いて、読取スロット数Rに1を加え、RAM914を用いて記憶する。
また、現在のスロットが読取スロットであるとスロット判定部140が判定した場合、読取装置100は、了解送信工程S544へ進む。
現在のスロットが読取スロット以外であるとスロット判定部140が判定した場合、読取装置100は、終了判定工程S545へ進む。
了解送信工程S544において、了解送信部133は、CPU911を用いて、応答受信工程S542で応答受信部132が正しく受信した識別データを宛先として含む了解メッセージを生成する。了解送信部133は、CPU911を用いて、無線通信装置916を制御し、アンテナ切替工程S512でアンテナ切替部112が選択したアンテナを介して、その識別データによって識別されるICタグ220に対して、了解メッセージを送信する。
終了判定工程S545において、スロット判定部140は、CPU911を用いて、例えば総数計数部151が数えた総スロット数Sに基づいて、現在のスロットが何番目のスロットであるかを判定する。スロット判定部140は、スロット数決定工程S520でスロット数決定部120が決定したスロット数に基づいて、CPU911を用いて、現在のスロットが最後のスロットであるかを判定する。
現在のスロットが最後のスロットであるとスロット判定部140が判定した場合、読取装置100は、完了判定工程S547へ進む。
現在のスロットが最後のスロットでないとスロット判定部140が判定した場合、読取装置100は、スロット更新工程S546へ進む。
スロット更新工程S546において、読取装置100は、CPU911を用いて、スロットを更新し、次のスロットへ移る。例えば、要求送信部131は、CPU911を用いて、次のスロットへの移行を表わすスロット更新メッセージを生成する。要求送信部131は、CPU911を用いて、無線通信装置916を制御し、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナを介して、そのアンテナの通信範囲のなかに存在するICタグ220に対して、スロット更新メッセージを送信する。
その後、読取装置100は、応答受信工程S542に戻り、ICタグ220からの応答を受信する。
なお、1つのスロット当たりの時間があらかじめ定まっている場合には、時間の経過により自動的に次のスロットに移るので、スロット更新工程S546はなくてもよい。
完了判定工程S547において、完了判定部113は、CPU911を用いて、ICタグ220の識別データの読み取りが完了したか否かを判定する。例えば、完了判定部113は、CPU911を用いて、総数計数部151が数えた総スロット数Sと、空き計数部152が数えた空きスロット数Eとを比較して、一致するか否かを判定する。総スロット数Sと空きスロット数Eとが一致しない場合、すなわち、要求送信工程S541で要求送信部131が送信した識別要求メッセージに対する応答として識別データを送信したICタグ220が存在する場合、完了判定部113は、RAM914を用いて、無応答回数として0を記憶する。総スロット数Sと空きスロット数Eとが一致する場合、すなわち、識別要求メッセージに対する応答として識別データを送信したICタグ220が存在しない場合、完了判定部113は、CPU911を用いて、無応答回数に1を加え、RAM914を用いて記憶する。完了判定部113は、CPU911を用いて、あらかじめ定めた所定のサイクル数(以下「完了判定サイクル数」と呼ぶ。)にアンテナ810a,810bの数を乗じた数(以下「完了判定回数」と呼ぶ。)と、無応答回数とを比較する。無応答回数が完了判定回数より小さい場合、完了判定部113は、ICタグ220の識別データの読み取りが完了していないと判定する。無応答回数が完了判定回数以上である場合、完了判定部113は、ICタグ220の識別データの読み取りが完了したと判定する。
ICタグ220の識別データの読み取りが完了したと完了判定部113が判定した場合、読取装置100は、読取処理S500を終了する。
ICタグ220の識別データの読み取りが完了していないと完了判定部113が判定した場合、読取装置100は、応答数推定工程S550へ進む。
応答数推定工程S550において、応答数推定部150は、CPU911を用いて、要求送信工程S541で要求送信部131が送信した識別要求メッセージに対して応答したICタグ220の数を推定して、推定応答数nとする。
その後、読取装置100は、アンテナ切替工程S512に戻り、アンテナを切り替えて、以上の処理を繰り返す。
なお、読取装置100は、識別要求メッセージを1回送信するたびにアンテナ切替部112がアンテナを切り替えるのではなく、他の構成としてもよい。例えば、所定の回数あるいは所定の条件を満たすまでアンテナを切り替えず、同じアンテナを介して要求送信部131が識別要求メッセージの送信を繰り返す。その後、アンテナ切替部112がアンテナを切り替えて、別のアンテナを介して要求送信部131が識別要求メッセージを送信する。アンテナ切替部112がアンテナを切り替える条件としては、例えば、識別要求メッセージに対してICタグ220が1つも応答しない状態が所定の回数連続した場合などがある。
アンテナ切替部112がアンテナを切り替えず同じアンテナを使用する場合、スロット数決定部120は、直前の識別要求メッセージに対する応答に基づいて応答数推定部150が推定した推定応答数nに基づいて、スロット数を決定する。
また、アンテナ切替部112がアンテナを切り替えて他のアンテナを使用したのち一巡して元のアンテナに戻ってきた場合、スロット数決定部120は、前回同じアンテナを使用したときの最後の識別要求メッセージに対する応答ではなく、前回同じアンテナを使用したときの最初の識別要求メッセージに対する応答に基づいて応答数推定部150が推定した推定応答数nに基づいて、スロット数を決定する。
次に、ICタグ220の側の処理について説明する。
要求受信工程S581において、アンテナ切替工程S512で読取装置100のアンテナ切替部112が選択したアンテナの通信範囲のなかに存在するICタグ220の要求受信部221は、要求送信工程S541で読取装置100の要求送信部131が送信した識別要求メッセージを受信する。
了解判定工程S582において、要求受信工程S581で識別要求メッセージを受信したICタグ220のスロット選択部222は、了解記憶部225が記憶したデータに基づいて、読取装置100がICタグ220自身の識別データを既に正しく受信しているか否かを判定する。
読取装置100がICタグ220自身の識別データを既に正しく受信しているとスロット選択部222が判定した場合、ICタグ220は、今回の処理を終了する。
読取装置100がICタグ220自身の識別データをまだ正しく受信していないとスロット選択部222が判定した場合、ICタグ220は、スロット選択工程S583へ進む。
スロット選択工程S583において、了解判定工程S582で読取装置100がICタグ220自身の識別データをまだ正しく受信していないと判定したICタグ220のスロット選択部222は、要求受信工程S581で要求受信部221が受信した識別要求メッセージに含まれるスロット数に基づいて、識別データを送信するスロットをランダムに選択する。例えば、スロット選択部222は、0以上、かつ、識別要求メッセージに含まれるスロット数より小さい乱数を生成し、識別データを送信するスロットのスロット番号とする。
スロット待ち工程S584において、スロット選択工程S583で識別データを送信するスロットを選択したICタグ220は、選択したスロットに移行するまで待機する。例えば、選択したスロットのスロット番号が0より大きい場合、要求受信部221は、読取装置100の要求送信部131がスロット更新メッセージを送信するのを待つ。要求送信部131がスロット更新メッセージを受信した場合、スロット選択部222は、スロット番号から1を差し引く。ICタグ220は、スロット番号が0になるまでこれを繰り返す。
識別送信工程S585において、スロット選択工程S583で選択したスロットに移行したICタグ220の識別送信部223は、読取装置100に対して、ICタグ220自身の識別データを送信する。
了解受信工程S586において、識別送信工程S585でICタグ220自身の識別データを送信したICタグ220の了解受信部224は、了解送信工程S544で読取装置100の了解送信部133が送信した了解メッセージを受信する。了解受信部224は、受信した了解メッセージに含まれる識別データと、ICタグ220自身の識別データとを比較して、その了解メッセージの宛先がICタグ220自身であるか否かを判定する。
その了解メッセージの宛先がICタグ220自身であると了解受信部224が判定した場合、ICタグ220は、了解記憶工程S587へ進む。
その了解メッセージの宛先がICタグ220自身でないと了解受信部224が判定した場合、ICタグ220は、今回の処理を終了し、要求受信部221が次の識別要求メッセージを受信するのを待つ。
なお、読取装置100が識別データを正しく受信できず、了解メッセージを送信しない場合もある。そのため、了解受信部224が了解メッセージを受信する前に要求受信部221が識別要求メッセージやスロット更新メッセージを受信した場合も同様に、ICタグ220は、今回の識別要求メッセージに対する処理を終了する。
了解記憶工程S587において、ICタグ220自身を宛先とする了解メッセージを受信したICタグ220の了解記憶部225は、了解メッセージを受信したこと、すなわち、読取装置100がICタグ220自身の識別データを正しく受信したことを表わすデータを記憶する。
その後、ICタグ220は、今回の識別要求メッセージに対する処理を終了する。
ICタグ220は、要求受信部221が識別要求メッセージを受信するたびに、以上の処理を繰り返す。
図9は、この実施の形態におけるスロット数決定工程S520の流れの一例を示す詳細フローチャート図である。
スロット数決定工程S520は、サイクル判定工程S521、既定値設定工程S522、アンテナ判定工程S523、経過時間算出工程S524、増加数算出工程S525、予測値算出工程S526、最大残数算出工程S527、上限応答数算出工程S528、予測応答数算出工程S529、スロット数算出工程S530を有する。
サイクル判定工程S521において、スロット数決定部120は、CPU911を用いて、現在のサイクルが、ICタグ220の識別データの読み取りを開始した最初のサイクルであるか、2回目以降のサイクルであるかを判定する。例えば、予測値算出部123は、CPU911を用いて、開始判定工程S511で開始判定部111がICタグ220の識別データの読み取りを開始すると判定して以降、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナを使用するのが初めてであるか、既に使用されたことがあるかを判定する。そのアンテナが初めて使用されると判定した場合、予測値算出部123は、現在のサイクルが最初のサイクルであると判定する。そのアンテナが既に使用されたことがあると判定した場合、予測値算出部123は、現在のサイクルが2回目以降のサイクルであると判定する。
現在のサイクルが最初のサイクルであるとスロット数決定部120が判定した場合、読取装置100は、既定値設定工程S522へ進む。
現在のサイクルが2回目以降のサイクルであるとスロット数決定部120が判定した場合、読取装置100は、経過時間算出工程S524へ進む。
既定値設定工程S522において、予測値算出部123は、CPU911を用いて、あらかじめ定められた既定の数を、予測応答数nとする。
アンテナ判定工程S523において、スロット数決定部120は、CPU911を用いて、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナが、ICタグ220の識別データの読み取りを開始した最初のサイクルのなかで最初に使用するアンテナであるか、最初のサイクルのなかで2番目以降のアンテナであるかを判定する。
現在のアンテナが最初のアンテナであるとスロット数決定部120が判定した場合、すなわち、ICタグ220の識別データの読み取りを開始したが、まだ要求送信部131が識別要求メッセージを送信していない場合、読取装置100は、スロット数算出工程S530へ進む。
現在のアンテナが2番目以降のアンテナであるとスロット数決定部120が判定した場合、すなわち、ICタグ220の識別データの読み取りを開始したのち、別のアンテナを介して要求送信部131が識別要求メッセージ送信したことがある場合、読取装置100は、最大残数算出工程S527へ進む。
経過時間算出工程S524において、経過時間算出部121は、CPU911を用いて、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナと同じアンテナを介して要求送信工程S541で要求送信部131が前回の識別要求メッセージを送信してから、要求送信部131が今回の識別要求メッセージを送信するまでの経過時間を算出する。
増加数算出工程S525において、増加数算出部122は、CPU911を用いて、経過時間算出工程S524で経過時間算出部121が算出した経過時間と、応答数推定工程S550で応答数推定部150が推定した推定応答数nとに基づいて、増加数Δnを算出する。ここで使用する推定応答数nは、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナと同じアンテナを介して要求送信工程S541で要求送信部131が送信した前回の識別要求メッセージに対する応答に基づいて応答数推定部150が推定したものである。
予測値算出工程S526において、予測値算出部123は、CPU911を用いて、増加数算出工程S525で増加数算出部122が算出した増加数Δnと、応答数推定工程S550で応答数推定部150が推定した推定応答数nと読取計数部153が数えた読取スロット数Rとに基づいて、推定応答数nから読取スロット数Rを差し引いた差に増加数Δnを加えた和を算出して、予測応答数nとする。ここで使用する推定応答数nも、増加数算出工程S525と同じく、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナと同じアンテナを介して要求送信工程S541で要求送信部131が送信した前回の識別要求メッセージに対する応答に基づいて応答数推定部150が推定したものである。
最大残数算出工程S527において、最大残数算出部124は、CPU911を用いて、前回までに読取計数部153が数えた読取スロット数Rと、最大総数記憶部172が記憶した最大総数とに基づいて、最大総数から、読取スロット数Rの総和を差し引いた差を算出して、最大残数とする。
上限応答数算出工程S528において、上限応答数算出部125は、CPU911を用いて、最大残数算出工程S527で最大残数算出部124が算出した最大残数と、最大応答数記憶部173が記憶した最大応答数とを比較して、小さいほうを上限応答数とする。
予測応答数算出工程S529において、予測応答数算出部126は、CPU911を用いて、予測値算出工程S526(または既定値設定工程S522)で予測値算出部123が算出した予測応答数nと、上限応答数算出工程S528で上限応答数算出部125が算出した上限応答数とを比較する。上限応答数のほうが予測応答数nより小さい場合、予測応答数算出部126は、CPU911を用いて、予測応答数nを修正し、上限応答数を予測応答数nとする。
スロット数算出工程S530において、スロット数算出部127は、CPU911を用いて、予測応答数算出工程S529で予測応答数算出部126が(または既定値設定工程S522で予測値算出部123が)算出した予測応答数nに基づいて、今回のスロット数を算出する。
その後、読取装置100は、スロット数決定工程S520を終了する。
図10は、この実施の形態におけるスロット数決定工程S520の流れの別の例を示す詳細フローチャート図である。
スロット数決定工程S520は、図9で説明した工程に加えて、経過時間算出工程S524b、増加数算出工程S525b、予測値算出工程S526bを有する。
アンテナ判定工程S523において、現在のアンテナが2番目以降のアンテナであるとスロット数決定部120が判定した場合、読取装置100は、最大残数算出工程S527ではなく、経過時間算出工程S524bへ進む。
経過時間算出工程S524bにおいて、経過時間算出部121は、CPU911を用いて、アンテナ切替工程S512でアンテナ切替部112が切り替える前のアンテナを介して要求送信工程S541で要求送信部131が前回の識別要求メッセージを送信してから、要求送信部131が今回の識別要求メッセージを送信するまでの経過時間を算出する。
増加数算出工程S525bにおいて、増加数算出部122は、CPU911を用いて、経過時間算出工程S524bで経過時間算出部121が算出した経過時間と、応答数推定工程S550で応答数推定部150が推定した推定応答数nとに基づいて、増加数Δnを算出する。ここで使用する推定応答数nは、増加数算出工程S525と異なり、アンテナ切替工程S512でアンテナ切替部112が切り替える前のアンテナを介して要求送信工程S541で要求送信部131が送信した前回の識別要求メッセージに対する応答に基づいて応答数推定部150が推定したものである。
予測値算出工程S526bにおいて、予測値算出部123は、CPU911を用いて、増加数算出工程S525bで増加数算出部122が算出した増加数Δnと、応答数推定工程S550で応答数推定部150が推定した推定応答数nとに基づいて、推定応答数nに増加数Δnを加えた和を算出して、予測応答数nとする。ここで使用する推定応答数nは、増加数算出工程S525bと同じく、アンテナ切替工程S512でアンテナ切替部112が切り替える前のアンテナを介して要求送信工程S541で要求送信部131が送信した前回の識別要求メッセージに対する応答に基づいて応答数推定部150が推定したものである。
この例では、物品群200の幅方向奥側と幅方向手前側とでは、通常、物品210を同じくらいの高さまで積み上げると考えられるので、ICタグ220の数もほぼ同じであると仮定して、予測応答数nを算出している。なお、異なるアンテナを介して識別データを読み取ったICタグ220は、そのアンテナの通信範囲の外にあると考えられるので、予測値算出工程S526bでは読取スロット数Rを差し引かない点が、予測値算出工程S526と異なっている。
このように、同じアンテナを介して前回受信した応答に基づく推定応答数nだけでなく、異なるアンテナを介して受信した応答に基づく推定応答数nも用いて、予測応答数nを算出し、スロット数を決定する構成としてもよい。
異なるアンテナを介して受信した応答に基づく推定応答数nを用いて予測応答数nを算出する方式の別の例を挙げる。
例えば、複数のアンテナのうち、あるアンテナ(以下「アンテナ810c」と呼ぶ。)は、物品群200の下側1段目〜3段目の物品210(*,*,1)(*,*,2)(*,*,3)と主に通信する通信範囲を有すると仮定する。別のアンテナ(以下「アンテナ810d」と呼ぶ。)は、物品群200の上側4段目〜6段目の物品210(*,*,4)(*,*,5)(*,*,6)と主に通信する通信範囲を有すると仮定する。
物品群200における積み上げ段数が2段以下である場合、アンテナ810cを介した通信に応答するICタグ220の数は、積み上げ段数が3段以上である場合よりも少ない。物品群200における積み上げ段数が2段以下である場合、アンテナ810dを介した通信に応答するICタグ220は、ほとんどないと予測できる。
例えば、アンテナ810cを介した通信に対する応答に基づいて応答数推定部150が推定した推定応答数nを所定の閾値と比較し、推定応答数nが閾値より小さい場合、スロット数決定部120は、アンテナ810dを介した通信に応答するICタグ220の予測応答数nを0あるいは通常よりも小さい値として、スロット数を決定する。
このように、アンテナの通信範囲の位置関係に基づいて、あるアンテナを介した通信に対して応答するICタグ220の数を、他のアンテナを介した通信に対する応答に基づいて予測する予測方式を変えることにより、より精度の高い予測をすることができる。
次に、この実施の形態における読取装置100の数学的背景を説明する。
スロット数がS、応答数がnの場合において、n個のICタグ220それぞれが、S個のスロットの各スロットを使用して識別データを送信する確率が等しく1/Sである場合、空きスロット数がEとなる確率P S,n(E)は、次の式で与えられる。
Figure 0005300676
分母の「S」は、スロット数Sのn乗を表わす。これは、n個のICタグ220それぞれが、S個のスロットのなかから、1つのスロットを選択する場合の数を意味する。
分子の「」は、S個のスロットのなかからE個の空きスロットを選択する組み合わせの数を表わす。
分子の「N(S−E,n)」は、残る(S−E)個のスロットのなかから重複を許してn個のICタグ220が使用するスロットを順に選択し、(S−E)個のスロットすべてが少なくとも1回は選択される順列の数を表わす。関数N(r,n)は、次の漸化式で与えられる。
Figure 0005300676
ここから、スロット数がS、応答数がnの場合における空きスロット数の期待値Eを求めると、以下の式を得る。
Figure 0005300676
以下、空きスロット数の期待値Eを応答数nの関数と考えて、
Figure 0005300676
と表わす。
図11は、この実施の形態における関数fの一例を示すグラフ図である。
横軸は、応答数nを表わす。縦軸は、空きスロット数の期待値Eを表わす。曲線721〜726は、スロット数Sがそれぞれ4、8、16、32、64、128の場合を表わす。
実際には、応答数nが未知数であり、スロット数Sと空きスロット数Eとが既知である。そこで、関数fの逆関数f −1を用いて、推定応答数nを求める。
Figure 0005300676
図示したように、関数fは単調減少関数なので、逆関数f −1の値は一意に定まる。
図6に示した推定応答数テーブルは、逆関数f −1の値を前もって計算したものである。
スロット数がS、応答数がnの場合において、n個のICタグ220それぞれが、S個のスロットの各スロットを使用して識別データを送信する確率が等しく1/Sである場合、空きスロット数がE、読取スロット数がRとなる確率P S,n(E,R)は、次の式で与えられる。
Figure 0005300676
分子の「」は、S個のスロットのなかからE個の空きスロットを選択する組み合わせの数を表わす。
分子の「S−E」は、残る(S−E)個のスロットのなかからR個の読取スロットを選択する組み合わせの数を表わす。
分子の「」は、n個のICタグ220のなかから重複を許さずR個の読取スロットそれぞれを使用するICタグ220を選択する順列の数を表わす。
分子の「N(S−(E+R),n−R)」は、残る(S−(E+R))個の競合スロットのなかから重複を許して残る(n−R)個のICタグ220が使用するスロットを選択し、(S−(E+R))個の競合スロットすべてが少なくとも2回は選択される順列の数を表わす。関数N(c,m)は、次の漸化式で与えられる。
Figure 0005300676
ここから、スロット数がS、応答数がnの場合における読取スロット数の期待値Rを求めると、以下の式を得る。
Figure 0005300676
図12は、この実施の形態におけるスロット数S及び応答数nと、読取スロット数の期待値Rとの関係の一例を示すグラフ図である。
横軸は、応答数nを表わす。縦軸は、読取スロット数の期待値Rを表わす。曲線731〜735は、スロット数Sがそれぞれ4、8、16、32、64の場合を表わす。
このように、スロット数Sが大きければ大きいほど、読取スロット数の期待値Rは大きくなる。読取スロット数Rは、識別データを読み取ることができるICタグ220の数であるから、読取スロット数の期待値Rが大きければ、一回の識別要求メッセージの送信で、多くのICタグ220の識別データを読み取れることを意味する。
また、スロット数Sを固定して考えると、応答数nが大きすぎても小さすぎても読取スロット数の期待値Rは小さくなり、応答数nがちょうどスロット数Sに一致する場合に、読取スロット数の期待値Rが最大になる。
時分割多重化方式によるスロットを用いる場合、一回の識別要求メッセージに対する応答を受信するのにかかる時間は、1スロット当たりの時間のS倍である。したがって、スロット数Sが二倍になれば、一回の識別要求メッセージに対する応答を受信するのにかかる時間も二倍になる。
このため、単位時間当たりで、識別データを読み取ることができるICタグ220の数が最大になるスロット数Sを求めるには、読取スロット数の期待値Rをスロット数Sで割った商を比較すればよい。
図13は、この実施の形態におけるスロット数S及び応答数nと、読取スロット数の期待値Rをスロット数Sで割った商との関係の一例を示すグラフ図である。
横軸は、応答数nを表わす。縦軸は、読取スロット数の期待値Rをスロット数Sで割った商を表わす。曲線741〜745は、スロット数Sがそれぞれ4、8、16、32、64の場合を表わす。
これによれば、応答数nがスロット数Sと一致する場合に読取スロット数の期待値Rをスロット数Sで割った商が最大となる点は、図12と同様であるが、応答数nによって最適なスロット数Sが異なることがわかる。
例えば、スロット数Sを4・8・16・32・64のなかから選択する場合であれば、単位時間当たりで識別データを読み取れるICタグ220の数を最大にする選択方式は、以下のとおりである。すなわち、応答数nが5以下のときは、スロット数Sを4にする。応答数nが6以上11以下のときは、スロット数Sを8にする。応答数nが12以上22以下のときは、スロット数Sを16にする。応答数nが23以上44以下のときは、スロット数Sを32にする。応答数nが45以上のときは、スロット数Sを64にする。
したがって、スロット数決定部120は、このようにして求めたスロット数に基づいて、予測応答数nからスロット数Sを決定する構成としてもよい。
これに対し、図7に示したスロット数テーブルでは、上述したスロット数よりも少し大きめのスロット数となるよう、スロット数を選択する閾値を設定している。これは、実際の応答数nが予測応答数nと一致しないことを考慮して、余裕を見たスロット数Sを選択するためである。
スロット数Sが大き過ぎると、時間がかかるので多少効率は悪くなるかもしれないが、図12に示したように、少なくとも、スロット数Sが小さ過ぎる場合よりも多くのICタグ220から識別データを読み取ることができる。また、応答数nに対してスロット数Sが大きい場合のほうが、スロット数Sが小さい場合よりも、空きスロット数Eや読取スロット数Rが大きくなるので、応答数nの推定精度が高くなる。したがって、次回だけでなく、その次の回の効率も合わせて考えると、スロット数Sとして理論値よりも少し大きめの値を採用するほうが望ましい。
なお、応答数nから空きスロット数の期待値Eを求める関数fとして、上述した式とは異なる式を用いる方式も考えられるので、その点に言及する。
スロット数がS、応答数がnの場合において、あるスロットが空きスロットである確率P S,nは、次の式で与えられる。
Figure 0005300676
スロット数がSなので、これをS倍すれば、空きスロット数の期待値Eが得られる。
Figure 0005300676
この式を関数fとして、逆関数f −1を求めると、以下の式を得る。
Figure 0005300676
ただし、この方式における空きスロット数の期待値Eは、近似値である。なぜなら、あるスロットが空きスロットである確率と、別のスロットが空きスロットである確率とは、独立ではないからである。例えば、応答数nが1以上の場合において、S個のスロットのうち(S−1)個のスロットが空きスロットであれば、残る1つのスロットは、絶対に空きスロットではない。また、応答数nがスロット数Sより小さい場合において、S個のスロットのうちn個のスロットが空きスロットでなければ、残る(S−n)個のスロットは、必ず空きスロットである。したがって、空きスロット数の期待値Eは、あるスロットが空きスロットである確率P S,nのS倍ではない。
したがって、空きスロット数の期待値Eを求める式として数13に示した式を用いる方式のほうが、より正確に応答数を推定することができ、望ましい。
同様に、あるスロットが読取スロットである確率P S,nを用いると、読取スロット数の期待値Rを求める近似式は、以下のようになる。
Figure 0005300676
したがって、スロット数決定部120は、この式を用いて算出した読取スロット数の期待値Rに基づいて、スロット数Sを決定する構成としてもよい。
この実施の形態における読取装置100は、複数の応答装置(ICタグ220)の各応答装置が複数のスロットのなかから選択したスロットにより送信した応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る。
上記読取装置100は、上記複数の応答装置に対してデータを送信する送信装置(無線通信装置916)と、上記複数の応答装置からデータを受信する受信装置(無線通信装置916)と、データを処理する処理装置(CPU911)と、応答受信部132と、スロット判定部140と、応答数推定部150と、スロット数決定部120と、スロット数送信部(要求送信部131)とを有する。
上記応答受信部132は、上記受信装置を用いて、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信する。
上記スロット判定部140は、上記応答受信部132が識別データの受信に成功したか否かに基づいて、上記処理装置を用いて、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定する。
上記応答数推定部150は、上記スロット判定部140が判定した判定結果に基づいて、上記処理装置を用いて、識別データを送信した応答装置の数を推定して推定応答数nとする。
上記スロット数決定部120は、上記応答数推定部150が推定した推定応答数nに基づいて、上記処理装置を用いて、上記応答装置が選択し得るスロットの数を決定してスロット数とする。
上記スロット数送信部は、上記送信装置を用いて、上記スロット数決定部120が決定したスロット数を上記応答装置に対して送信する。
この実施の形態における読取装置100によれば、スロット判定部140が判定した判定結果に基づいて応答数推定部150が推定した推定応答数nに基づいて、スロット数決定部120がスロット数を決定するので、スロット数を、応答装置の数に適した値にすることができ、制限時間内にすべての応答装置の識別データを読み取ることができる。
この実施の形態における読取装置100は、更に、複数のアンテナ810a,810bのなかから使用するアンテナを選択するアンテナ選択装置917と、アンテナ切替部112とを有する。
上記送信装置(無線通信装置916)は、上記アンテナ選択装置917が選択したアンテナを介して、上記複数の応答装置に対してデータを送信する。
上記受信装置(無線通信装置916)は、上記アンテナ選択装置917が選択したアンテナを介して、上記複数の応答装置からデータを受信する。
上記アンテナ切替部112は、上記アンテナ選択装置917を用いて、使用するアンテナを切り替える。
上記スロット数決定部120は、上記アンテナ切替部112が切り替えたアンテナを介して上記応答受信部132が前回受信した識別データに基づいて上記応答数推定部150が推定した推定応答数nに基づいて、上記処理装置を用いて、スロット数を決定する。
この実施の形態における読取装置100によれば、アンテナを切り替えながら応答装置の識別データを読み取り、同じアンテナを前回使用したときの推定応答数nに基づいてスロット数決定部120がスロット数を決定するので、スロット数を、それぞれのアンテナの通信範囲のなかにある応答装置の数に適した値にすることができる。
この実施の形態における読取装置100において、上記スロット数決定部120は、上記アンテナ切替部112が切り替える前のアンテナを介して上記応答受信部132が受信した識別データに基づいて上記応答数推定部150が推定した推定応答数nに基づいて、上記処理装置を用いて、スロット数を決定する。
この実施の形態における読取装置100によれば、アンテナを切り替えながら応答装置の識別データを読み取り、他のアンテナを使用したときの推定応答数nに基づいてスロット数決定部120がスロット数を決定するので、他のアンテナの通信範囲のなかにある応答装置の数から、あるアンテナの通信範囲のなかにある応答装置の数を予測して、スロット数をそれに適した値にすることができる。
この実施の形態における読取装置100は、データを送信する送信装置(無線通信装置916)とデータを受信する受信装置(無線通信装置916)とデータを処理する処理装置(CPU911)とを有するコンピュータが、コンピュータプログラムを実行することにより実現することができる。
この実施の形態における読取装置100としてコンピュータを機能させるコンピュータプログラムによれば、スロット判定部140が判定した判定結果に基づいて応答数推定部150が推定した推定応答数nに基づいて、スロット数決定部120がスロット数を決定するので、スロット数を、応答装置の数に適した値にすることができ、制限時間内にすべての応答装置の識別データを読み取る読取装置100を実現することができる。
この実施の形態における読取装置100が、複数の応答装置(ICタグ220)の各応答装置が複数のスロットのなかから選択したスロットを用いて送信する応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取方法は、以下の工程を有する。
上記受信装置(無線通信装置916)が、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信する。
上記受信装置が識別データの受信に成功したか否かに基づいて、上記処理装置(CPU911)が、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定する。
上記処理装置が判定した判定結果に基づいて、上記処理装置が、識別データを送信した応答装置の数を推定して推定応答数とする。
上記処理装置が推定した推定応答数に基づいて、上記処理装置が、上記応答装置が選択し得るスロットの数を決定してスロット数とする。
上記送信装置(無線通信装置916)が、上記処理装置が決定したスロット数を上記応答装置に対して送信する。
この実施の形態における読取方法によれば、処理装置が推定した推定応答数nに基づいて、スロット数を決定するので、スロット数を、応答装置の数に適した値にすることができ、制限時間内にすべての応答装置の識別データを読み取ることができる。
以上説明したRFIDリーダライタ装置(読取装置100)において、アンテナ接続部(アンテナ選択装置917)は、複数台のアンテナ810a,810bと接続する。読取処理実行部(要求送信部131、応答受信部132)は、タグIDの全数読み取り処理(以下「InventoryTags」と呼ぶ。)を複数回連続実行する。アンテナ変更部(アンテナ切替部112)は、InventoryTagsのたびにタグと通信するアンテナを変更する。1回のInventoryTagsは、1回以上のラウンドから構成される。スロット数決定部120は、各ラウンドごとに、タグ数を予測してスロット数を決定する。
タグ数予測部(応答数推定部150)は、前ラウンドのタグ数を、空スロット数と総スロット数より推定(予測)する。
タグ数予測部(予測値算出部123)は、前ラウンドのタグ数見積もりに、タグ数増加を見込んで、次ラウンドのタグ数を予測する。タグ数予測部(増加数算出部122)は、前ラウンドの総スロット数と読めたタグ数よりタグ数増加を算出する。
タグ数予測部(予測応答数算出部126)は、1回に1個のアンテナから読み取り可能なタグ数を最大値として、予測タグ数を制限する。運用パラメータ保持部(最大応答数記憶部173)は、1個のアンテナからの読み取り可能なタグ数(最大応答数)を、運用パラメータとして予め設定しておく。
タグ数予測部(スロット数決定部120)は、読むべきタグの最大数を指定してタグ数を予測する。運用パラメータ保持部(最大総数記憶部172)は、読むべきタグの最大数(最大総数)を、運用パラメータとして予め設定しておく。最大残数算出部124は、読むべきタグの最大数とすでに読んだタグ数から、読むべきタグの残数を求める。上限応答数算出部125は、読むべきタグの残数をアンテナ数により除算して、その値を、タグ数予測値の最大値として制限する。
以上説明したRFIDシステム(読取システム800)において、ホストコンピュータ850は、リーダ装置(読取装置100)にタグ(ICタグ220)の読み出し命令を出す。例えばネットワークを介して、ホストコンピュータ850とリーダ装置とは接続される。アンテナ810aは、例えばアンテナケーブルを介して、リーダ装置と接続される。アンテナ810bは、アンテナ810aと異なるアンテナケーブルを介して、リーダ装置と接続される。アンテナ810aまたはアンテナ810bとタグ集団(物品群200に含まれる複数のICタグ220)とは、電波で通信(リーダ装置はコマンドを一括で送り、それぞれのタグがレスポンスを返す)する。RFIDリーダ装置は、例えば、ネットワークインタフェース部(ネットワーク通信装置915)、通信制御部(スロット判定部140)、無線通信部(無線通信装置916)、アンテナ切替え部(アンテナ選択装置917)、タグ数予測部(応答数推定部150・スロット数決定部120)、スロット数算出部(スロット数決定部120)、運用パラメータ保持部(増加率記憶部171、最大総数記憶部172、最大応答数記憶部173)を備える。
タグ集団は、例えば、台車の上にタグが貼付された荷物が多数置かれているものである。1つのタグ集団には、例えば20行×6列=120個のタグが存在する。タグ集団は、例えば台車に乗せられ、2つのアンテナ810aとアンテナ810bとの間を通過する。
通信制御部は、空スロット数(E)、総スロット数(S)、読み取りタグ数(R)の情報を、タグ数予測部に送信する。運用パラメータ保持部は、アンテナ数N、読み取り可能タグ数TMax(最大応答数)、アンテナ毎の初期タグ数TFirst(A)、タグ数増加パラメータρ,ρを、タグ数予測部に送信する。タグ数予測部は、予測タグ数PRoundを算出して、スロット数算出部に送信する。
タグ数予測部は、予測回路(推定値算出部156、増加数算出部122、予測値算出部123、予測応答数算出部126)を有し、タグの残数情報TRemain(最大残数)、アンテナ毎の前回のInventoryTagsの第1ラウンドのタグ数情報TPreviousFirstRound(推定応答数n)、タグ数関数テーブル(推定応答数テーブル)を記憶している。最大残数算出部124は、総タグ数の上限TTotalMax(最大総数)から、それまで読まれたすべてのタグ数を減算して、タグの残数情報TRemainを算出する。
第1サイクルの第1ラウンドのタグ数予測において、予測回路は、初期タグ数TFirst(A)と、読み取り可能タグ数TMaxと、タグの残数情報TRemainをアンテナ数Nで割った商とのうちの最小値を、予測タグ数とする。
第2サイクル以降の第1ラウンドのタグ数予測において、予測回路は、前回のInventoryTagsの第1ラウンドのタグ数情報TPreviousFirstRoundと、読み取り可能タグ数TMaxと、タグの残数情報TRemainをアンテナ数Nで割った商とのうちの最小値を、予測タグ数とする。
第2ラウンド以降のタグ数予測において、予測回路は、前ラウンドの総スロット数Sと、前ラウンドの空きスロット数Eとに基づいて、タグ数関数テーブルを用いて、前ラウンドのタグ数を推定する。予測回路は、前ラウンドの総スロット数Sに所定の係数ρを乗じた積と、前ラウンドの読取スロット数Rに所定の係数ρを乗じた積との和を算出して、タグ数増加TINCとする。予測回路は、前ラウンドのタグ数から前ラウンドでの読み取りタグ数Rを差し引いた差にタグ数増加TINCを加えた和を算出する。予測回路は、算出した和と、読み取り可能タグ数TMaxと、タグの残数情報TRemainをアンテナ数Nで割った商とのうちの最小値を、予測タグ数とする。
例えば、台車の上に、タグが貼付された物品が、高さ20段で6列(2行×3列)の状態で積載されている。台車の前方に2列、中ほどに2列、後方に2列が配置されている。台車に積まれたタグ集団は、一団となって移動し、アンテナ810aとアンテナ810bとの間を通過する。タグ集団のうち、奥側の3列は、アンテナ810aに近い面に配置され、手前側の3列は、アンテナ810bに近い面に配置されている。基本的には、各タグは、各アンテナに近いところのものが読まれやすいが、電波の反射やフェージングの影響により、遠いタグが読まれたり、近くのタグが読まれなかったりすることもある。
ホストコンピュータ850が、ネットワークを経由して、ID読み取り命令を表わす信号をRFIDリーダ装置に送信すると、RFIDリーダ装置では、ネットワークインタフェース部がネットワークにより伝達された信号を解釈してID読み取り命令とし、通信制御部にID読み取り命令を伝える。通信制御部は、ID読み取り命令を解釈して処理を実行する。通信制御部は、ID読み取り命令にしたがい、IDを読むための通信コマンド列(識別要求メッセージ)を作成し、無線通信部に伝える。通信コマンド列は、例えば、セレクト処理の1個のコマンドとラウンド処理のコマンド列から構成される。ラウンド処理のコマンド列には、そのラウンドのスロット数が含まれる。そのランドのスロット数は、タグ数予測部とスロット数算出部とが決定する。スロット数は、アンテナの数やアンテナの性能などの運用条件にも依存するため、それらの条件を運用パラメータ保持部があらかじめ保持しておく。
コマンド列を受けた無線通信部は、通信コマンドを無線に乗せる信号に変換する。アンテナ切替え部は、この信号を、複数のアンテナケーブルのいずれかに接続する。アンテナケーブルは、それぞれ、1つのアンテナに接続されている。すなわち、切り替え部を切り替えることにより、複数のアンテナ810a,810bのうちの一つを使用して、タグ集団と通信をする。通信はInventoryTagsと呼ばれるリーダとタグ集団間のやりとりを複数回発行することで行われる。
1回のラウンド処理を終了するたびに、無線通信部が読み出したタグの情報を通信制御部に返す。無線通信部は、読めたタグ数R、総スロット数S、空スロット数Eをタグ数予測部に送信する。これらの情報は、次のタグ数予測のデータとなる。
タグ集団のすべてのタグを読み切ったとき、通信制御部は、そのすべてのIDを格納する。ネットワークインタフェース部21は、これらのID番号を、ネットワークを伝搬する信号に変換し、ネットワークを経由してホストコンピュータ850に伝える。
タグは、数秒間(例えば5秒以上)データを保持する機能を持つ。一度InventoryTagsで読まれたタグは、アンテナ切り替えなどでアンテナからのエネルギーの供給が途絶えたとしても、数秒間はそのタグがすでに読まれたという状態を保持するので、それより後のInventoryTagsで読まれることはない。1回のInventoryTagsを実行するには、それぞれのラウンドごとのスロット数を決定しなければならない。スロット数は、このInventoryTagsでいくつのタグを読もうとしているのかを予測する「予測タグ数」より求める。
予測タグ数の決定において、運用パラメータ保持部は、事前に、アンテナ数N、読み取り可能な最大タグ数TMax、読み取らなければならない総タグ数の上限TTotalMax、アンテナ毎の初期タグ数TFirst(A)、タグ数増加パラメータ(ρ,ρ)などの運用パラメータとして、システム設計時などに決定した値を保持しておく。
アンテナ数Nは、RFIDリーダ装置に接続されたアンテナの数であり、例えば2である。
読み取らなければならない総タグ数の上限TTotalMaxは、1台の台車に積む可能性のある最大数である。例えば、1台の台車に1〜200個のタグが積まれる可能性がある場合、TTotalMaxは200に設定する。
読み取り可能最大タグ数TMaxは、対象となるシステムにおいて、一つのアンテナで1回のラウンドで一括読み取りすることになりうる最大数を表わす。例えば、1台の台車につき全部で200個のタグを読むとしても、アンテナの電波送信範囲やタグの密度から考えて、一度に通信できるタグの数は、それよりも少なく、例えばたかだか40個程度である。その場合、TMaxは40に設定する。
アンテナ毎の初期タグ数TFirst(A)は、第1サイクルにおける各アンテナのInventoryTagsの第1ラウンドで読まれると想定されるタグ数を表わす。なお、Aはアンテナ番号を表わす。最初から多数のタグを読む場合、TFirst(A)は大きい値に設定し、最初は少数のタグしか読まない場合、TFirst(A)は小さい値に設定する。
タグ数増加パラメータ(ρ,ρ)は、総スロット数と読まれたタグ数から次ラウンドに新たに通信可能になるタグを予測するためのパラメータである。タグ集団は移動しているので、1回のラウンド処理をしていると、その時間内に新たなタグがアンテナの通信範囲に入り、リーダ装置と通信可能となる。ラウンド処理にかかる時間は、総スロット数Sと読まれたタグ数Rに依存し、例えば40kbps程度の通信性能であれば「ラウンド処理にかかる時間=S×1ミリ秒+R×7ミリ秒」である。
新たに通信可能となるタグ数がラウンド処理にかかる時間に比例すると看做すと、新たに通信可能となるタグ数TINCは、「TINC=S×ρ+R×ρ」で求めることができる。ここで、ρ、ρは運用で決まるパラメータであり、例えば、アンテナ数が2ならρ=0.05、ρ=0.35、アンテナ数が4ならρ=0.03、ρ=0.17程度の数値になる。
1回のInventoryTags処理の流れは、例えば、以下のとおりである。
この処理は、例えば、EPC Globalが既定するC1G2(Class1 Generation2)と呼ばれるリーダ装置とタグ集団との間のコマンドを使って実現する。
一例として、アンテナ数N=2、第3サイクルのInventoryTagsについて説明する。なお、前回のサイクルのInventoryTagsの第1ラウンドで読めたタグ数TPreviousFirstRound(A)=20、実在するタグ=34、読み取り可能最大タグ数TMax=40、タグ数の残数TRemain=100、ρ=0.05、ρ=0.35とする。
まず、タグ数予測部は、第1ラウンドの予測タグ数を算出する。タグ数予測部は、前回のサイクルの第1ラウンドで読めたタグ数TPreviousFirstRound(A)=20、TMax=40、TRemain/N=50のうちの最小値20を、予測タグ数とする。
スロット数算出部は、予測タグ数20より、第1ラウンドのスロット数(例えば32)を算出する。
リーダ装置は、タグ集団にSelectコマンドを送信し、タグ集団のうち、今回の処理に無関係のタグが入っていたら、それを排除する。今回の35個のタグにはそのようなものはないものとし、35個すべてのタグがIDの問い合わせ対象とする。
リーダ装置は、スロット番号Kを1に、読んだタグ数Rを0に、衝突スロット数Cを0に初期化する。
リーダ装置は、Queryコマンドを送信する。ここから、最初のスロットが始まる。
リーダ装置は、タグからの応答(HandleNumber)があるか否かを判定する。
タグからの応答があった場合、リーダ装置は、ACKコマンドを送信し、タグはそれにIDを応答する。リーダ装置は、読まれたタグ数Rをカウントアップして1を加える。
タグからHandleNumberが返ってこないときは、ふたつのケースがある。ひとつは、どのタグも応答しなかったケースである。もう一つが、複数のタグが応答し、衝突を起こしたケースである。後者の場合、衝突スロットカウンタCをインクリメントして1を加える。
リーダ装置は、QueryRepeatコマンドを送信し、次のスロットに入る。
リーダ装置は、スロット番号Kと、このラウンドで実行すべきスロット数とを比較する。
スロット番号Kのほうが小さい場合、リーダ装置は、スロット番号Kをインクリメントして1を加え、タグからの応答待ちに戻る。
スロット番号Kがスロット数に達した場合、リーダ装置は、このラウンドを終了する。
ラウンド終了後、リーダ装置は、今回のラウンドのタグ数Rと前回のラウンドのタグ数RPreviousRoundが両方とも0であるか否かを判定する。
両方とも0である場合、リーダ装置は、1回のInventoryTagsの処理を終了する。
いずれかが0でない場合、リーダ装置は、今回のラウンドのタグ数Rを、RPreviousRoundとして保存する。リーダ装置は、次のラウンドのスロット数を算出する。
次のラウンドのスロット数算出において、リーダ装置は、次のラウンドの予測タグ数を算出する。例えば、このラウンドで読めたタグ数R=8、衝突スロット数C=6であったとすると、リーダ装置は、空きスロット数E=S−R−C=18を算出し、タグ数関数テーブルを用いて、前ラウンドのタグ数(例えば18)を算出する。リーダ装置は、タグ数増加TINC=S×ρ+R×ρ=32×0.05+8×0.35=4.4を算出する。リーダ装置は、18−8+4.4=14.4と、TMax=20と、TRemain/N=50とのうちの最小値14.4を次のラウンドの予測タグ数とする。
リーダ装置は、算出した予測タグ数14.4より、次のラウンドのスロット数(例えば16)を算出する。その後、リーダ装置は、ラウンド処理に戻り、Queryコマンドを送信して、次のラウンドを開始する。
これを繰り返し、すべてのタグを読み切れば、それ以上応答するタグがなくなるので、R=0になる。これが2回続くと、終了条件が満たされるので、1回のInventoryTagsの処理が終了する。
複数回のInventoryTagsを繰り返す処理の流れは、たとえば、以下のとおりである。
なお、読み取り可能な最大タグ数TMaxを40、読み取らなければならない総タグ数TTotalMaxを200とする。
リーダ装置は、InvetntoryTagsの実行回数を1に初期化する。リーダ装置は、タグの読み取り残数TRemainを初期化して、総タグ数TTotalMax=200を読み取り残数とする。
アンテナ切り替え部がアンテナケーブルを接続し、アンテナ810aが電波を送信する。
リーダ装置は、アンテナ810aを使用して、第1回目のInventoryTagsを実行する。
タグ集団では、アンテナ810aに近い側の列のタグが主に応答する。
例えば、第1回目のInventoryTagsで35個のタグが読めたとする。リーダ装置は、アンテナ810aを使用して35個のタグが読めたことを記憶する。リーダ装置は、読めたタグIDを蓄積する。リーダ装置は、読み取り残数TRemainを更新する。リーダ装置は、読み取り残数200から読めたタグ数35を差し引いて、読み取り残数TRemain=200−35=165とする。
リーダ装置は、過去のN回(すなわち1サイクル分)のInventoryTagsで連続してタグが読めなければ、もう読み残したタグがないものと判断して、処理を終了する。
読み残したタグがあると判定した場合、リーダ装置は、使用するアンテナを切り替えて、次のInventoryTagsを実行する。これを、読み残したタグがないと判定するまで繰り返す。
1回目のInventoryTagsで読めたタグ数は35なので、リーダ装置は、読み残したタグがあると判定する。なお、1回目のInventoryTagsで読めたタグ数が0であったとしても、まだアンテナを一巡していないので、リーダ装置は、読み残したタグがあると判定する。
リーダ装置は、第2回目のInventoryTagsの準備を開始し、アンテナ切り替え部がアンテナケーブルを切り替えて、アンテナ810bが電波を送信する。リーダ装置は、アンテナ810bを使用して第2回目のInventoryTagsを実行する。
タグ集団では、アンテナ810bに近い側の列のタグが主に応答する。なお、第1回目のInventoryTagsで既に読まれたタグは応答しない。
例えば、第2回目のInventoryTagsで31個のタグが読めたとする。リーダ装置は、読めたタグIDを蓄積する。リーダ装置は、読み取り残数TRemainを更新して、読み取り残数TRemain=165−31=134とする。
第1回目のInventoryTagsで読めたタグ数が35、第2回目のInventoryTagsで読めたタグ数が31であって、どちらも0ではないので、リーダ装置は、読み残したタグがあると判定し、第3回目のInventoryTagsに移る。
リーダ装置は、第3回目のInventoryTagsの準備を開始し、アンテナ切り替え部がアンテナケーブル51を切り替えて、再びアンテナ810aが電波を送信する。リーダ装置は、アンテナ810aを使用して第3回目のInventoryTagsを実行する。
例えば、第3回目のInventoryTagsで20個のタグが読めたとする。リーダ装置は、読めたタグIDを蓄積する。リーダ装置は、読み取り残数TRemainを更新して、読み取り残数TRemain=134−20=114とする。
第2回目のInventoryTagsで読めたタグ数が31、第3回目のInventoryTagsで読めたタグ数が20であって、どちらも0ではないので、リーダ装置は、読み残したタグがあると判定し、第4回目のInventoryTagsに移る。
これを繰り返し、2回続けて読めたタグ数が0になるまで処理を続ける。
例えば、第7回目のInventoryTagsで読めたタグ数が5、第8回目のInventoryTagsで読めたタグ数が0であるとすると、リーダ装置は、読み残したタグがあると判定し、第9回目のInventoryTagsに移る。
第9回目のInventoryTagsで読めたタグ数が0であるとすると、第8回目のInventoryTagsで読めたタグ数も0なので、リーダ装置は、読み残したタグがないと判定して、読み取り処理を終了する。
InventoryTagsの処理を繰り返すにつれて、読み取り残数TRemainが減っていく。スロット数の決定に読み取り残数TRemainを用いることにより、最適なスロット数を決定することができる。
例えば、ある段階で、総タグ数TTotalMax=200に対して、それまでに読み取ったタグ数が190であるとすると、読み取り残数TRemainは10になる。その場合、まだ読めていないタグの数は10以下なので、前のラウンドに応答したタグ数がどんなに多くても、タグ数予測部は、予測タグ数として10より大きい数を算出することはない。スロット数算出部は、この予測タグ数に基づいて、例えばスロット数を16にする。これにより、スロット数として適切な値を設定することができる。
このように、InventoryTagsの実行を進めるにしたがって、読むべきタグ、実際に読めたタグが少なくなり、それに伴って、スロット数算出部するスロット数も減少する。したがって、序盤のInventoryTagsでは、十分な数のスロット数が設定されて、タグの衝突の発生を抑えることができるとともに、終盤のInventoryTagsでは、不要に多くのスロット数を割り当てることがなくなるので、読み取りの効率が高くなる。これにより、複数のアンテナを切り替えながら複数のInventoryTagsを実行する環境において、InventoryTagsを効率的に実行することができ、同じ数のタグを一括読み取りする場合に、実行時間が短くて済む。
なお、アンテナ数Nは、3以上であってもよい。例えば、RFIDリーダ装置に4台のアンテナを接続する場合、アンテナ切り替え部は、4つのアンテナにそれぞれ接続した4つのアンテナケーブルのいずれかと接続する。タグ集団は、4つのアンテナに囲まれた領域を通過し、リーダ装置は、その間にすべてのタグを読む。例えば、4つのアンテナのうちの1つは、タグ集団の通り道の上段左側、他の1つは上段右側、別の1つは下段左側、最後の1つは下段右側というように、各アンテナが主に通信するタグの範囲が異なる位置に配置する。
アンテナ切替部112は、4つのアンテナを所定の順序で切り替える。例えば、アンテナ切替部112は、上段左側→下段左側→上段右側→下段右側のように、同じ側が連続する順序で切り替える構成としてもよいし、下段左側→上段右側→上段左側→下段右側のように、1回ごとに左右が変化する順序で切り替える構成としてもよい。なお、1回ごとに左右が変化する順序で切り替える構成のほうが、読み落としの確率が減り、望ましい。
このように、アンテナ数を増やし、適切な順番で切り替えることにより、タグ集団に含まれるタグの数が非常に多い場合でも、すべてのタグを読みとることができる。
実施の形態2.
実施の形態2について、図14〜図17を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、実施の形態1よりも精度よく応答数を推定する方式について説明する。
図14は、この実施の形態における応答数推定部150の詳細ブロックの構成の一例を示す詳細ブロック図である。
応答数推定部150は、実施の形態1で説明したブロックに加えて、更に、競合計数部154を有する。
競合計数部154は、スロット判定部140が判定した判定結果に基づいて、CPU911を用いて、競合スロットの数(競合スロット数C)を数える。
なお、実施の形態1で述べたように、総スロット数Sと空きスロット数Eと読取スロット数Rと競合スロット数Cとの間には、S=E+R+Cという関係が成り立つので、競合計数部154に代えて、競合算出部を設け、競合算出部が、総スロット数Sから空きスロット数Eと読取スロット数Rとの和を差し引いた差S−(E+R)を算出して競合スロット数Cとする構成としてもよい。
推定値算出部156は、空き計数部152が数えた空きスロット数Eと、競合計数部154が数えた競合スロット数Cとに基づいて、CPU911を用いて、値Dを算出する。例えば、推定値算出部156は、CPU911を用いて、空きスロット数Eから競合スロット数Cを差し引いた差を算出して、値Dとする。
図15は、この実施の形態における推定テーブル記憶部155が記憶した推定応答数テーブルの一例を示す図である。
指標値614は、値Dを表わす。総スロット数612は、総スロット数Sを表わす。推定応答数613は、値Dが左端の指標値614と一致し、総スロット数Sが上端の総スロット数612と一致する場合における推定応答数を表わす。
例えば、値Dが−6、総スロット数Sが16である場合、推定応答数は28となる。また、値Dが30、総スロット数Sが64である場合、推定応答数は35となる。
スロット数がS、応答数がnの場合において、n個のICタグ220それぞれが、S個のスロットの各スロットを使用して識別データを送信する確率が等しく1/Sである場合、空きスロット数がE、読取スロット数がRとなる確率P S,n(E,R)の計算式は、数16に示した。
ここで、競合スロット数Cは、C=S−(E+R)であることから、値Dの期待値Dを求めると、以下の式を得る。
Figure 0005300676
実施の形態1と同様、以下、値Dの期待値Dを応答数nの関数と考えて、
Figure 0005300676
と表わし、関数gの逆関数g −1を用いて、推定応答数nを算出する。
図16は、この実施の形態におけるスロット数S及び応答数nと、値Dの期待値Dとの関係の一例を示すグラフ図である。
横軸は、応答数nを表わす。縦軸は、値Dの期待値Dを表わす。曲線751〜755は、スロット数Sがそれぞれ4、8、16、32、64の場合を表わす。
関数fと同様、関数gも単調減少関数であるから、逆関数g −1の値は一意に定まる。
次に、実施の形態1で説明した空きスロット数Eに基づく応答数の推定と、この実施の形態で説明した値Dに基づく応答数の推定との推定精度を比較する。
図17は、応答数n及び空きスロット数Eまたは値Dと、発生確率との関係の一例を示すグラフ図である。
横軸は、空きスロット数E及び値Dを表わす。縦軸は、その発生確率を表わす。曲線761〜765は、スロット数Sが64の場合において応答数nがそれぞれ50、55、60、65、70の場合の空きスロット数Eが発生する確率を表わす。曲線771〜775は、スロット数Sが64の場合において応答数がそれぞれ50、55、60、65、70の場合の値Dが発生する確率を表わす。
この図に示すように、空きスロット数Eや値Dの実際の値は、確率的に定まり、期待値E・Dを中心とする正規分布に近い分布をする。
一見してわかるように、空きスロット数Eの確率分布は、応答数nが変化しても移動量が小さく、グラフの重なりが大きいのに対して、値Dの確率分布は、応答数nの変化に対する移動量が大きく、グラフの重なりが小さい。換言すると、応答数nがnである場合の期待値と応答数nがnである場合の期待値との差で、応答数nがnである場合の標準偏差を割った商を比較すると、値Dの場合のほうが、空きスロット数Eの場合よりも大きい。
例えば、実施の形態1における応答数推定部150は、空きスロット数EがEである場合、推定応答数nを60と算出するが、実際の応答数nが55あるいは65である可能性も少なからずあり、50あるいは70である可能性も否定できない。これに対し、この実施の形態における応答数推定部150は、値DがDである場合、推定応答数nを60と算出するが、実際の応答数nが55あるいは65である可能性は低く、50あるいは70である可能性はほとんどない。
すなわち、この実施の形態における応答数推定部150のほうが、実施の形態1における応答数推定部150よりも、応答数の推定精度が高い。
この実施の形態における読取装置100において、上記応答数推定部150は、上記処理装置)CPU911)を用いて、上記複数のスロットのうち、空きスロットであると上記スロット判定部140が判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると上記スロット判定部が判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eから上記競合スロット数Cを差し引いた値D=E−Cを算出し、上記応答装置(ICタグ220)が選択し得たスロットの総数Sと、上記値Dとに基づいて、推定応答数を算出する。
この実施の形態における読取装置100によれば、応答数を高い精度で推定することができるので、それに基づいてスロット数決定部120が決定するスロット数がより適切な値になり、制限時間内にすべての応答装置の識別データを読み取ることができる。
なお、応答数推定部150は、値Dとして、空きスロット数Eから競合スロット数Cを差し引いた差を用いる代わりに、2つの所定の定数α及びβを用いて、空きスロット数Eに定数αを乗じた積と、競合スロット数Cに定数βを乗じた積との和を用いる構成としてもよい。実施の形態1で説明した応答数推定部150は、定数αとして1、定数βとして0を用いた例であり、この実施の形態で説明した応答数推定部150は、定数αとして1、定数βとして−1を例である。このように、定数α・βとして適切な値を選択することにより、応答数の推定精度を高めることができる。
この実施の形態における読取装置100において、上記応答数推定部150は、上記処理装置を用いて、上記複数のスロットのうち、空きスロットであると上記スロット判定部140が判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると上記スロット判定部140が判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eに所定の定数αを乗じた積αEと、上記競合スロット数Cに所定の定数βを乗じた積βCとを合計した値D=αE+βCを算出し、上記応答装置が選択し得たスロットの総数Sと、上記値Dとに基づいて、推定応答数を算出する。
この実施の形態における読取装置100によれば、応答数を高い精度で推定することができるので、それに基づいてスロット数決定部120が決定するスロット数がより適切な値になり、制限時間内にすべての応答装置の識別データを読み取ることができる。
なお、上述したように、総スロット数Sと空きスロット数Eと読取スロット数Rと競合スロット数Cとの間には、S=E+R+Cという関係が存在する。したがって、応答数推定部150は、空きスロット数Eと競合スロット数Cとに基づいて推定応答数nを算出する代わりに、読取スロット数Rと競合スロット数Cとに基づいて推定応答数nを算出する構成としてもよい。あるいは、応答数推定部150は、空きスロット数Eと読取スロット数Rとに基づいて推定応答数nを算出する構成としてもよい。
この実施の形態における読取装置100において、上記応答数推定部150は、上記複数のスロットのうち、読取スロットであると上記スロット判定部140が判定したスロットの数を計数して読取スロット数Rとし、競合スロットであると上記スロット判定部140が判定したスロットの数を計数して競合スロット数Cとし、上記処理装置を用いて、上記応答装置が選択し得たスロットの総数Sと、上記読取スロット数Rと、上記競合スロット数Cとに基づいて、推定応答数を算出する。
この実施の形態における読取装置100によれば、応答数を高い精度で推定することができるので、それに基づいてスロット数決定部120が決定するスロット数がより適切な値になり、制限時間内にすべての応答装置の識別データを読み取ることができる。
以上説明したRFIDリーダライタ装置(読取装置100)において、タグ数予測部(応答数推定部150)は、前ラウンドのタグ数を、空スロット数Eとタグ読み取り数Rと総スロット数Sとに基づいて推定(予測)する。
D=E−Cという新しい変数を導入し、タグ数予測部は、値Dを算出する。タグ数予測部は、総スロット数Sと値Dとから、タグ数を求める。これにより、前のラウンドのタグ数の見積もりの精度が高くなる。
タグ数から空きスロット数Eや値Dの期待値を算出する関数fやgの逆関数f −1やg −1を用いて、空きスロット数Eや値Dからタグ数を推定する場合、空きスロット数Eや値Dの実際の値は、確率的に分布するので、そのバラツキが小さいほうが、タグ数の見積もり精度が高くなる。上述した確率の計算式に基づいて理論的に算出した結果は、実際に実験した結果とよく一致し、タグ数が同じ場合、空きスロット数Eよりも値Dのほうがバラツキが少ない。すなわち、値Dに基づいてタグ数を推定するほうが、空きスロット数Eに基づいて推定する場合よりも、精度が高く、実際のタグ数に近い値を推定することができる。
実施の形態3.
実施の形態3について、図18〜図23を用いて説明する。
なお、実施の形態1または実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、応答数を推定する更に別の方式について説明する。
図18は、この実施の形態における応答数推定部150及びスロット数決定部120の詳細ブロックの構成の一例を示す詳細ブロック図である。
応答数推定部150は、実施の形態1で説明した総数計数部151、空き計数部152、読取計数部153に加えて、事前確率記憶部157、事後確率算出部158を有する。
事前確率記憶部157は、HDD920を用いて、0以上かつ最大応答数以下の整数iそれぞれについて、応答数nが整数iである事前確率P(i)を記憶している。事前確率P(i)は、それまでにわかっている情報に基づいて応答数nが整数iである可能性を予測した確率を表わす。例えば、物品群200に対してまだ1回も識別要求メッセージを送信していない場合、応答数nを予測できる情報はない。したがって、応答数nが0以上かつ最大応答数以下の整数のいずれである可能性も等しいと考えられる。このため、事前確率記憶部157は、最大応答数に1を加えた和で1を割った商を、0以上かつ最大応答数以下のすべてのiについての事前確率P(i)として記憶する。なお、読取システム800の運用状況などにより、応答数nに偏りがあることがあらかじめわかっている場合には、その偏りに基づいた事前確率P(i)を事前確率記憶部157が記憶しておく構成としてもよい。
なお、事前確率記憶部157は、各アンテナについて事前確率P(i)を記憶する。
事後確率算出部158は、CPU911を用いて、総数計数部151が数えた総スロット数Sと、空き計数部152が数えた空きスロット数Eと、読取計数部153が数えた読取スロット数Rと、事前確率記憶部157が記憶した事前確率P(i)とに基づいて、0以上かつ最大応答数以下の整数iそれぞれについて、応答数nが整数iである事後確率P(i)を算出する。事後確率P(i)は、識別要求メッセージに対する応答から得られる情報に基づいて、事前確率記憶部157が記憶した事前確率P(i)を修正したものである。
スロット数S及び応答数nが既知であると仮定すると、空きスロット数がEかつ読取スロット数がRである確率P S,n(E,R)は、数16を用いて算出することができる。応答数nは不明であるが、応答数nがiである事前確率P(i)がわかっているので、ベイズ推定により、空きスロット数がEかつ読取スロット数がRかつ応答数がiである確率P (E,R,i)は、以下の式を用いて算出することができる。
Figure 0005300676
いま、識別要求メッセージに対する応答に基づいて、空きスロット数Eと読取スロット数Rとがわかったので、空きスロット数Eと読取スロット数Rとを空き計数部152及び読取計数部153が数えた値に固定して、応答数nだけを0から最大応答数まで変化させて、確率P (E,R,i)の総和Σを算出する。空きスロット数がEかつ読取スロット数がRかつ応答数nがiである確率P (E,R,i)を総和Σで割った商を求めることにより、事後確率P(i)を得ることができる。
Figure 0005300676
事後確率算出部158は、CPU911を用いて、上記のような計算を行い、0以上かつ最大応答数以下の整数iそれぞれについて、事後確率P(i)を算出する。
スロット数決定部120を構成する機能ブロックは、実施の形態1で説明した機能ブロックと同様である。
スロット数決定部120は、推定応答数nではなく、事後確率P(i)に基づいて、予測応答数nを算出する点が、実施の形態1と異なる。
なお、応答数推定部150が、事後確率P(i)をそのまま出力するのではなく、推定応答数nを算出して出力する構成としてもよい。例えば、応答数推定部150は、期待値算出部を有し、期待値算出部は、事後確率算出部158が算出した事後確率P(i)に基づいて、応答数nの期待値を算出して、推定応答数nとする。
その場合、スロット数決定部120は、実施の形態1で説明した構成と同じ構成でよい。
増加数算出部122は、事後確率算出部158が算出した事後確率P(i)に基づいて、CPU911を用いて、事後確率P(i)が0でない整数iそれぞれについて、応答数nがiである場合の増加数Δnを算出する。なお、増加数算出部122は、増加数Δnを算出する代わりに、増加数Δnの確率分布を算出する構成としてもよい。
予測値算出部123は、事後確率算出部158が算出した事後確率P(i)と、増加数算出部122が算出した増加数Δnと、読取計数部153が数えた読取スロット数Rとに基づいて、CPU911を用いて、予測応答数nの確率分布を算出する。例えば、予測値算出部123は、CPU911を用いて、事後確率P(i)が0でない整数iそれぞれについて、整数iから読取スロット数Rを差し引いた差に増加数Δnを加えた和を算出して、その整数iについての予測応答数nとし、事後確率P(i)をその予測応答数nの発生確率とする。
予測応答数算出部126は、上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、予測値算出部123が算出した予測応答数nの確率分布を修正する。例えば、予測応答数算出部126は、上限応答数以上である予測応答数nの発生確率を合計して、予測応答数nが上限応答数である場合の発生確率とし、上限応答数を超える予測応答数nの発生確率を0にする。
スロット数算出部127は、予測応答数算出部126が算出した予測応答数nの確率分布に基づいて、CPU911を用いて、スロット数を算出する。例えば、あらかじめ定めた複数のスロット数の候補(例えば4・8・16・32・64など)のそれぞれについて、スロット数算出部127は、CPU911を用いて、単位時間当たりの読取スロット数の期待値Rを算出する。例えば、スロット数算出部127は、CPU911を用いて、予測応答数nの確率分布に基づいて、発生確率が0でない予測応答数nそれぞれについての読取スロット数の期待値を算出し、算出した期待値にその予測応答数nの発生確率を乗じた積を算出する。スロット数算出部127は、算出した積の総和を算出し、算出した総和をスロット数の候補で割った商を算出することにより、各スロット数の候補についての読取スロット数の期待値Rを算出する。スロット数算出部127は、各スロット数の候補について算出した読取スロット数の期待値Rに基づいて、CPU911を用いて、最も読取スロット数の期待値Rが大きい候補をスロット数として決定する。
なお、スロット数算出部127は、実施の形態1で説明したように、読取スロット数の期待値Rだけでなく、次回の応答数の推定の精度も加味してスロット数を決定する構成としてもよい。例えば、スロット数算出部127は、CPU911を用いて、スロット数の候補と応答数との組から応答数の推定精度を算出し、読取スロット数の期待値Rと応答数の推定精度とに基づいて評価値を算出し、算出した評価値が最も大きい候補をスロット数として決定する。
応答数推定部150の事前確率記憶部157は、HDD920を用いて、予測応答数算出部126が算出した予測応答数nの確率分布を、そのときのアンテナについての応答数nの事前確率P(i)として記憶する。すなわち、事前確率記憶部157は、0以上かつ最大応答数以下の整数iそれぞれについて、予測応答数算出部126が算出した予測応答数nがiである確率を、事前確率P(i)として記憶する。
このように、予測応答数算出部126が算出した予測応答数nの確率分布をフィードバックして、事前確率記憶部157が事前確率P(i)として記憶することにより、次回の事後確率P(i)の精度を高めることができる。
なお、予測応答数算出部126が算出した予測応答数nの確率分布をフィードバックせず、予測応答数算出部126は、最初に記憶した事前確率P(i)をそのまま記憶しておく構成としてもよい。これにより、予測応答数算出部126による予測応答数nの予測精度が悪い場合に、事後確率P(i)の精度が逆に低下するのを防ぐことができる。
図19は、この実施の形態における応答数推定工程S550の流れの一例を示す詳細フローチャート図である。
応答数推定工程S550は、初期化工程S551、2つの仮応答数選択工程S552,S556、確率算出工程S553、確率加算工程S554、2つの仮応答数判定工程S555,S558、事後確率算出工程S557を有する。
初期化工程S551において、事後確率算出部158は、RAM914を用いて、確率P (E,R,i)の総和Σとして0を記憶する。
仮応答数選択工程S552において、事後確率算出部158は、CPU911を用いて、0以上かつ最大応答数以下の整数のなかから順に整数を1つ選択して、整数iとする。
確率算出工程S553において、事後確率算出部158は、総数計数部151が数えた総スロット数Sと、空き計数部152が数えた空きスロット数Eと、読取計数部153が数えた読取スロット数Rと、仮応答数選択工程S552で選択した整数iとに基づいて、CPU911を用いて、確率P (E,R,i)を算出する。事後確率算出部158は、RAM914を用いて、仮応答数選択工程S552で選択した整数iについて算出した確率P (E,R,i)を記憶する。
確率加算工程S554において、事後確率算出部158は、CPU911を用いて、確率算出工程S553で算出した確率P (E,R,i)を総和Σに加え、RAM914を用いて記憶する。
仮応答数判定工程S555において、事後確率算出部158は、CPU911を用いて、仮応答数選択工程S552で選択すべき整数iがまだ残っているか否かを判定する。
仮応答数選択工程S552で選択すべき整数iがまだあると事後確率算出部158が判定した場合、読取装置100は、仮応答数選択工程S552に戻り、事後確率算出部158が次の整数iを選択する。
仮応答数選択工程S552で選択すべき整数iをすべて選択したと事後確率算出部158が判定した場合、読取装置100は、仮応答数選択工程S556へ進む。
仮応答数選択工程S556において、事後確率算出部158は、CPU911を用いて、0以上かつ最大応答数以下の整数のなかから順に整数を1つ選択して、整数iとする。
事後確率算出工程S557において、事後確率算出部158は、仮応答数選択工程S556で選択した整数iについて確率算出工程S553で算出した確率P (E,R,i)を、総和Σで割った商を算出する。事後確率算出部158は、RAM914を用いて、仮応答数選択工程S556で選択した整数iについての事後確率P(i)として、算出した商を記憶する。
仮応答数判定工程S558において、事後確率算出部158は、CPU911を用いて、仮応答数選択工程S556で選択すべき整数iがまだ残っているか否かを判定する。
仮応答数選択工程S556で選択すべき整数iがまだあると事後確率算出部158が判定した場合、読取装置100は、仮応答数選択工程S556に戻り、事後確率算出部158が次の整数iを選択する。
仮応答数選択工程S556で選択すべき整数iをすべて選択したと事後確率算出部158が判定した場合、読取装置100は、応答数推定工程S550を終了する。
図20は、この実施の形態におけるスロット数決定工程S520の流れの一例を示す詳細フローチャート図である。
スロット数決定工程S520は、サイクル判定工程S521、アンテナ判定工程S523、経過時間算出工程S524、2つの最大残数算出工程S527,S527b、2つの上限応答数算出工程S528,S528b、初期確率分布算出工程S539、確率分布算出工程S560、スロット数算出工程S530を有する。
サイクル判定工程S521において、スロット数決定部120は、CPU911を用いて、現在のサイクルが、ICタグ220の識別データの読み取りを開始した最初のサイクルであるか、2回目以降のサイクルであるかを判定する。
現在のサイクルが最初のサイクルであるとスロット数決定部120が判定した場合、読取装置100は、アンテナ判定工程S523へ進む。
現在のサイクルが2回目以降のサイクルであるとスロット数決定部120が判定した場合、読取装置100は、経過時間算出工程S524へ進む。
アンテナ判定工程S523において、スロット数決定部120は、CPU911を用いて、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナが、ICタグ220の識別データの読み取りを開始して最初に切り替えられたアンテナであるか、2番目以降のアンテナであるかを判定する。
現在のアンテナが最初のアンテナであるとスロット数決定部120が判定した場合、読取装置100は、上限応答数算出工程S528bへ進む。
現在のアンテナが2番目以降のアンテナであるとスロット数決定部120が判定した場合、読取装置100は、最大残数算出工程S527bへ進む。
最大残数算出工程S527bにおいて、最大残数算出部124は、CPU911を用いて、前回までに読取計数部153が数えた読取スロット数Rと、最大総数記憶部172が記憶した最大総数とに基づいて、最大総数から、読取スロット数Rの総和を差し引いた差を算出して、最大残数とする。
上限応答数算出工程S528bにおいて、上限応答数算出部125は、CPU911を用いて、最大残数算出工程S527bで最大残数算出部124が算出した最大残数と、最大応答数記憶部173が記憶した最大応答数とを比較して、小さいほうを上限応答数とする。
初期確率分布算出工程S539において、予測応答数算出部126は、上限応答数算出工程S528bで上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、予測応答数nの確率分布の初期値を算出する。例えば、予測応答数算出部126は、CPU911を用いて、上限応答数に1を加えた和で1を割った商を算出し、0以上かつ上限応答数以下の各整数が予測応答数nである確率とする。
その後、読取装置100は、スロット数算出工程S530へ進む。
経過時間算出工程S524において、経過時間算出部121は、CPU911を用いて、アンテナ切替工程S512でアンテナ切替部112が切り替えたアンテナと同じアンテナを介して要求送信工程S541で要求送信部131が前回の識別要求メッセージを送信してから、要求送信部131が今回の識別要求メッセージを送信するまでの経過時間を算出する。
最大残数算出工程S527において、最大残数算出部124は、CPU911を用いて、前回までに読取計数部153が数えた読取スロット数Rと、最大総数記憶部172が記憶した最大総数とに基づいて、最大総数から、読取スロット数Rの総和を差し引いた差を算出して、最大残数とする。
上限応答数算出工程S528において、上限応答数算出部125は、CPU911を用いて、最大残数算出工程S527で最大残数算出部124が算出した最大残数と、最大応答数記憶部173が記憶した最大応答数とを比較して、小さいほうを上限応答数とする。
確率分布算出工程S560において、予測応答数算出部126は、CPU911を用いて、予測応答数nの確率分布を算出する。
スロット数算出工程S530において、スロット数算出部127は、初期確率分布算出工程S539または確率分布算出工程S560で予測応答数算出部126が算出した予測応答数nの確率分布に基づいて、CPU911を用いて、スロット数を算出する。
その後、読取装置100は、スロット数決定工程S520を終了する。
図21は、この実施の形態における確率分布算出工程S560の流れの一例を示す詳細フローチャート図である。
確率分布算出工程S560は、確率分布初期化工程S561、仮応答数選択工程S562、仮増加数選択工程S563、増加確率算出工程S564、予測値算出工程S565、予測応答数算出工程S566、確率加算工程S567、仮増加数判定工程S568、仮応答数判定工程S569を有する。
確率分布初期化工程S561において、予測応答数算出部126は、上限応答数算出工程S528で上限応答数算出部125が算出した上限応答数に基づいて、RAM914を用いて、予測応答数nが0以上かつ上限応答数以下の各整数である確率として0を記憶する。
仮応答数選択工程S562において、予測応答数算出部126は、上限応答数算出工程S528で上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、0以上かつ上限応答数以下の整数のなかから順に整数を1つ選択して、仮応答数とする。
仮増加数選択工程S563において、増加数算出部122は、CPU911を用いて、所定の範囲の整数のなかから順に整数を1つ選択して、仮増加数とする。
増加確率算出工程S564において、増加数算出部122は、仮応答数選択工程S562で予測応答数算出部126が選択した仮応答数と、仮増加数選択工程S563で選択した仮増加数とに基づいて、CPU911を用いて、応答数nが仮応答数と一致すると仮定した場合において増加数Δnが仮増加数と一致する確率を算出して、増加確率とする。
予測値算出工程S565において、予測値算出部123は、仮応答数選択工程S562で予測応答数算出部126が選択した仮応答数と、仮増加数選択工程S563で増加数算出部122が選択した仮増加数と、読取計数部153が数えた読取スロット数Rとに基づいて、CPUを用いて、予測応答数nを算出する。例えば、予測値算出部123は、CPU911を用いて、仮応答数から読取スロット数Rを差し引いた差に仮増加数を加えた和を算出して、予測応答数nとする。
予測応答数算出工程S566において、予測応答数算出部126は、上限応答数算出工程S528で上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、予測値算出工程S565で予測値算出部123が算出した予測応答数nを修正する。例えば、予測応答数算出部126は、予測値算出部123が算出した予測応答数nが上限応答数より大きい場合、予測応答数nを修正して、上限応答数を予測応答数nとする。
確率加算工程S567において、予測応答数算出部126は、仮応答数選択工程S562で選択した仮応答数について事後確率算出部158が算出した事後確率P(i)と、増加確率算出工程S564で増加数算出部122が算出した増加確率とに基づいて、CPU911を用いて、事後確率P(i)と増加確率との積を算出して、加算確率とする。予測応答数算出部126は、CPU911を用いて、予測応答数算出工程S566で算出した予測応答数nについて記憶した確率に加算確率を加え、RAM914を用いて、記憶する。
仮増加数判定工程S568において、増加数算出部122は、CPU911を用いて、仮増加数選択工程S563で選択すべき範囲のすべての整数を仮増加数として選択したか否かを判定する。
仮増加数選択工程S563でまだ選択していない仮増加数があると増加数算出部122が判定した場合、増加数算出部122は、仮増加数選択工程S563に戻り、次の仮増加数を選択する。
仮増加数選択工程S563でまだ選択していない仮増加数がないと増加数算出部122が判定した場合、読取装置100は、仮応答数判定工程S569へ進む。
仮応答数判定工程S569において、予測応答数算出部126は、CPU911を用いて、仮応答数選択工程S562で0以上かつ上限応答数以下のすべての整数を仮応答数として選択したか否かを判定する。
仮応答数選択工程S562でまだ選択していない仮応答数があると予測応答数算出部126が判定した場合、予測応答数算出部126は、仮応答数選択工程S562に戻り、次の仮応答数を選択する。
仮応答数選択工程S562でまだ選択していない仮応答数がないと予測応答数算出部126が判定した場合、読取装置100は、確率分布算出工程S560を終了する。
図22は、この実施の形態におけるスロット数算出工程S530の流れの一例を示す詳細フローチャート図である。
スロット数算出工程S530は、評価値初期化工程S531、仮スロット数選択工程S532、仮予測数選択工程S533、評価値算出工程S534、評価値加算工程S535、仮予測数判定工程S536、仮スロット数判定工程S537、評価値比較工程S538を有する。
評価値初期化工程S531において、スロット数算出部127は、複数のスロット数候補それぞれについて、RAM914を用いて、評価値として0を記憶する。
仮スロット数選択工程S532において、スロット数算出部127は、複数のスロット数候補のなかから順にスロット数候補を1つ選択し、仮スロット数とする。
仮予測数選択工程S533において、スロット数算出部127は、上限応答数算出工程S528で上限応答数算出部125が算出した上限応答数に基づいて、CPU911を用いて、0以上かつ上限応答数以下の整数のなかから順に整数を1つ選択し、仮予測数とする。
評価値算出工程S534において、スロット数算出部127は、仮スロット数選択工程S532で選択した仮スロット数と、仮予測数選択工程S533で選択した仮予測数とに基づいて、CPU911を用いて、スロット数を仮スロット数に設定した場合において応答数nが仮予測数と一致した場合の評価値を算出する。例えば、スロット数算出部127は、CPU911を用いて、読取スロット数の期待値Rや応答数の推定精度を算出し、これらの値に基づいて評価値を算出する。
評価値加算工程S535において、スロット数算出部127は、CPU911を用いて、仮予測数選択工程S533で選択した仮予測数について予測応答数算出部126が算出した確率と、評価値算出工程S534で算出した評価値とに基づいて、確率と評価値との積を算出して、加算評価値とする。スロット数算出部127は、CPU911を用いて、仮スロット数選択工程S532で選択した仮スロット数について記憶した評価値に加算評価値を加え、RAM914を用いて、記憶する。
仮予測数判定工程S536において、スロット数算出部127は、CPU911を用いて、仮予測数選択工程S533で0以上かつ上限応答数以下のすべての整数を仮予測数として選択したか否かを判定する。
仮予測数選択工程S533でまだ選択していない仮予測数があるとスロット数算出部127が判定した場合、スロット数算出部127は、仮予測数選択工程S533に戻り、次の仮予測数を選択する。
仮予測数選択工程S533でまだ選択していない仮予測数がないとスロット数算出部127が判定した場合、読取装置100は、仮スロット数判定工程S537へ進む。
仮スロット数判定工程S537において、スロット数算出部127は、CPU911を用いて、仮スロット数選択工程S532ですべてのスロット数候補を仮スロット数として選択したか否かを判定する。
仮スロット数選択工程S532でまだ選択していない仮スロット数があるとスロット数算出部127が判定した場合、スロット数算出部127は、仮スロット数選択工程S532に戻り、次の仮スロット数を選択する。
仮スロット数選択工程S532でまだ選択していない仮スロット数がないとスロット数算出部127が判定した場合、読取装置100は、評価値比較工程S538へ進む。
評価値比較工程S538において、スロット数算出部127は、各スロット数候補について記憶した評価値を比較して、評価値が最も大きいスロット数候補を、スロット数に決定する。
その後、読取装置100は、スロット数算出工程S530を終了する。
図23は、総スロット数S及び応答数nと、空きスロット数E・読取スロット数R・競合スロット数Cの発生確率との関係の一例を示すグラフ図である。
三角形781〜785は、総スロット数Sが64、応答数nがそれぞれ50、55、60、65、70の場合を表わす。各三角形の頂点Eは、空きスロット数Eが総スロット数Sに一致する場合を表わす。頂点Eの対辺は、空きスロット数Eが0である場合を表わす。頂点Rは、読取スロット数Rが総スロット数Sに一致する場合を表わす。頂点Rの対辺は、読取スロット数Rが0である場合を表わす。頂点Cは、競合スロット数Cが総スロット数Sに一致する場合を表わす。頂点Cの対辺は、競合スロット数Cが0である場合を表わす。三角形内の点は、その点の位置が表わす空きスロット数E、読取スロット数R、競合スロット数Cが発生する確率を表わし、点の大きさが大きいほど発生確率が高いことを表わす。
この図に示したように、総スロット数S及び応答数nが既知であると仮定した場合において、空きスロット数E・読取スロット数R・競合スロット数Cの発生確率は、二次元に分布する。S=E+R+Cであるから、変数は3つあるが、自由度としては2である。
したがって、推定応答数n(もしくはその確率分布)の算出には、空きスロット数E・読取スロット数R・競合スロットCのうちいずれか2つを変数とする2変数関数を用いるほうが精度の高い推定が可能となる。
実施の形態1及び実施の形態2では、1変数関数であるf −1、g −1を用いて推定応答数nを算出する構成について説明した。また、推定応答数nを算出する1変数関数f −1、g −1の導出方式として、応答数nを変数とする関数f、gの逆関数を用いる方式について説明した。
これに対して、推定応答数nの算出に2変数関数を用いる場合、応答数nを変数とする関数の逆関数を用いる簡便な方式を取ることは難しい。
そこで、この実施の形態では、ベイズ推定を用いることにより、空きスロット数E・読取スロット数R・競合スロットCがわかった場合における応答数nの確率分布を求める。これにより、2変数関数を用いて推定応答数n(の確率分布)を算出したことになる。
上述したように、応答数推定部150は、算出した応答数nの確率分布から応答数nの期待値を算出して推定応答数nとする構成としてもよい。しかし、推定応答数nに基づいて予測応答数nを算出するよりも、応答数nの確率分布に基づいて予測応答数nの確率分布を算出するほうが、情報量が多いので、より精度の高い予測が可能となり、それに基づいて決定したスロット数が最適なスロット数である可能性が高くなる。
なお、推定応答数nを算出する代わりに、ベイズ推定により応答数の確率分布を算出する方式を、実施の形態1あるいは実施の形態2に適用した構成としてもよい。
例えば、応答数推定部150は、CPU911を用いて、総数計数部151が数えた総スロット数Sと、空き計数部152が数えた空きスロット数Eとに基づいて、0以上かつ上限応答数以下の整数iそれぞれについて、空きスロット数がEかつ応答数nがiとなる確率P S,i(E)を算出する。応答数推定部150は、確率P S,i(E)と事前確率P(i)との積を算出することにより、事後確率P(i)を算出して、応答数の確率分布を求める。
この実施の形態における読取装置100において、上記応答数推定部150は、上記複数のスロットのうち、空きスロットであると上記スロット判定部140が判定したスロットの数を計数して空きスロット数Eとし、読取スロットであると上記スロット判定部140が判定したスロットの数を計数して読取スロット数Rとし、上記処理装置(CPU911)を用いて、上記応答装置(ICタグ220)が選択し得たスロットの総数Sと、上記読取スロット数Rと、上記競合スロット数Cとに基づいて、識別データを送信した応答装置の数の確率分布を算出する。
上記スロット数決定部120は、上記応答数推定部150が算出した確率分布に基づいて、上記処理装置を用いて、スロット数を決定する。
この実施の形態における読取装置100によれば、応答数の確率分布を求め、それに基づいてスロット数を決定するので、決定したスロット数が更に適切な値になり、制限時間内にすべての応答装置の識別データを読み取ることができる。
100 読取装置、111 開始判定部、112 アンテナ切替部、113 完了判定部、120 スロット数決定部、121 経過時間算出部、122 増加数算出部、123 予測値算出部、124 最大残数算出部、125 上限応答数算出部、126 予測応答数算出部、127 スロット数算出部、131 要求送信部、132 応答受信部、133 了解送信部、134 識別出力部、140 スロット判定部、150 応答数推定部、151 総数計数部、152 空き計数部、153 読取計数部、154 競合計数部、155 推定テーブル記憶部、156 推定値算出部、157 事前確率記憶部、158 事後確率算出部、171 増加率記憶部、172 最大総数記憶部、173 最大応答数記憶部、174 スロット数テーブル記憶部、200 物品群、210 物品、220 ICタグ、221 要求受信部、222 スロット選択部、223 識別送信部、224 了解受信部、225 了解記憶部、611 空きスロット数、612 総スロット数、613 推定応答数、614 指標値、621 予測応答数、622 スロット数、710 通信範囲、721〜775 曲線、781〜785 三角形、800 読取システム、810 アンテナ、820 ベルトコンベア、831 赤外線照射装置、832 赤外線受光装置、850 ホストコンピュータ、901 LCD、902 K/B、911 CPU、912 バス、913 ROM、914 RAM、915 ネットワーク通信装置、916 無線通信装置、917 アンテナ選択装置、918 物体検出装置、920 HDD。

Claims (9)

  1. 複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットにより送信した応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取装置において、
    上記複数の応答装置に対してデータを送信する送信装置と、上記複数の応答装置からデータを受信する受信装置と、データを処理する処理装置と、応答受信部と、スロット判定部と、応答数推定部と、スロット数決定部と、スロット数送信部とを有し、
    上記応答受信部は、上記受信装置を用いて、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記スロット判定部は、上記応答受信部が識別データの受信に成功したか否かに基づいて、上記処理装置を用いて、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記応答数推定部は、上記スロット判定部が判定した判定結果に基づいて、上記処理装置を用いて、識別データを送信した応答装置の数を推定して推定応答数として算出する推定部であり、上記複数のスロットのうち、空きスロットであると上記スロット判定部が判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると上記スロット判定部が判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eから上記競合スロット数Cを差し引いた値D=E−Cを算出し、上記応答装置が選択し得たスロットの総数Sと、上記値Dとに基づいて、推定応答数を算出し
    上記スロット数決定部は、上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記スロット数送信部は、上記送信装置を用いて、上記スロット数決定部が決定したスロット数を上記応答装置に対して送信することを特徴とする読取装置。
  2. 複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットにより送信した応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取装置において、
    上記複数の応答装置に対してデータを送信する送信装置と、上記複数の応答装置からデータを受信する受信装置と、データを処理する処理装置と、応答受信部と、スロット判定部と、応答数推定部と、スロット数決定部と、スロット数送信部とを有し、
    上記応答受信部は、上記受信装置を用いて、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記スロット判定部は、上記応答受信部が識別データの受信に成功したか否かに基づいて、上記処理装置を用いて、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記応答数推定部は、上記スロット判定部が判定した判定結果に基づいて、上記処理装置を用いて、識別データを送信した応答装置の数を推定して推定応答数として算出する推定部であり、上記複数のスロットのうち、空きスロットであると上記スロット判定部が判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると上記スロット判定部が判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eに所定の定数αを乗じた積αEと、上記競合スロット数Cに所定の定数βを乗じた積βCとを合計した値D=αE+βCを算出し、上記応答装置が選択し得たスロットの総数Sと、上記値Dとに基づいて、推定応答数を算出し
    上記スロット数決定部は、上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記スロット数送信部は、上記送信装置を用いて、上記スロット数決定部が決定したスロット数を上記応答装置に対して送信することを特徴とする読取装置。
  3. 複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットにより送信した応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取装置において、
    上記複数の応答装置に対してデータを送信する送信装置と、上記複数の応答装置からデータを受信する受信装置と、データを処理する処理装置と、応答受信部と、スロット判定部と、応答数推定部と、スロット数決定部と、スロット数送信部とを有し、
    上記応答受信部は、上記受信装置を用いて、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記スロット判定部は、上記応答受信部が識別データの受信に成功したか否かに基づいて、上記処理装置を用いて、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記応答数推定部は、上記スロット判定部が判定した判定結果に基づいて、上記処理装置を用いて、識別データを送信した応答装置の数を推定して推定応答数として算出する推定部であり、読取スロットであると上記スロット判定部が判定したスロットの数を計数して読取スロット数Rとし、競合スロットであると上記スロット判定部が判定したスロットの数を計数して競合スロット数Cとし、上記応答装置が選択し得たスロットの総数Sと、上記読取スロット数Rと、上記競合スロット数Cとに基づいて推定応答数を算出し
    上記スロット数決定部は、上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記スロット数送信部は、上記送信装置を用いて、上記スロット数決定部が決定したスロット数を上記応答装置に対して送信することを特徴とする読取装置。
  4. 上記読取装置は、更に、複数のアンテナのなかから使用するアンテナを選択するアンテナ選択装置と、アンテナ切替部とを有し、
    上記送信装置は、上記アンテナ選択装置が選択したアンテナを介して、上記複数の応答装置に対してデータを送信し、
    上記受信装置は、上記アンテナ選択装置が選択したアンテナを介して、上記複数の応答装置からデータを受信し、
    上記アンテナ切替部は、上記アンテナ選択装置を用いて、使用するアンテナを切り替え、
    上記スロット数決定部は、上記アンテナ切替部が切り替えたアンテナを介して上記応答受信部が前回受信した識別データに基づいて上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、スロット数を決定することを特徴とする請求項1乃至請求項3のいずれかに記載の読取装置。
  5. 上記スロット数決定部は、上記アンテナ切替部が切り替える前のアンテナを介して上記応答受信部が受信した識別データに基づいて上記応答数推定部が推定した推定応答数に基づいて、上記処理装置を用いて、スロット数を決定することを特徴とする請求項4に記載の読取装置。
  6. データを送信する送信装置とデータを受信する受信装置とデータを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータが請求項1乃至請求項5のいずれかに記載の読取装置として機能することを特徴とするコンピュータプログラム。
  7. データを送信する送信装置とデータを受信する受信装置とデータを処理する処理装置とを有する読取装置が、複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットを用いて送信する応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取方法において、
    上記受信装置が、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記受信装置が識別データの受信に成功したか否かに基づいて、上記処理装置が、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記処理装置が判定した判定結果に基づいて、上記処理装置が、上記複数のスロットのうち、空きスロットであると判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eから上記競合スロット数Cを差し引いた値D=E−Cを算出し、上記応答装置が選択し得たスロットの総数Sと、上記値Dとから、識別データを送信した応答装置の数を推定して推定応答数とし、
    上記処理装置が推定した推定応答数に基づいて、上記処理装置が、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記送信装置が、上記処理装置が決定したスロット数を上記応答装置に対して送信することを特徴とする読取方法。
  8. データを送信する送信装置とデータを受信する受信装置とデータを処理する処理装置とを有する読取装置が、複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットを用いて送信する応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取方法において、
    上記受信装置が、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記受信装置が識別データの受信に成功したか否かに基づいて、上記処理装置が、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記処理装置が判定した判定結果に基づいて、上記処理装置が、上記複数のスロットのうち、空きスロットであると判定したスロットの数を計数して空きスロット数Eとし、競合スロットであると判定したスロットの数を計数して競合スロット数Cとし、上記空きスロット数Eに所定の定数αを乗じた積αEと、上記競合スロット数Cに所定の定数βを乗じた積βCとを合計した値D=αE+βCを算出し、上記応答装置が選択し得たスロットの総数Sと、上記値Dとから、識別データを送信した応答装置の数を推定して推定応答数とし、
    上記処理装置が推定した推定応答数に基づいて、上記処理装置が、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記送信装置が、上記処理装置が決定したスロット数を上記応答装置に対して送信することを特徴とする読取方法。
  9. データを送信する送信装置とデータを受信する受信装置とデータを処理する処理装置とを有する読取装置が、複数の応答装置の各応答装置が複数のスロットのなかから選択したスロットを用いて送信する応答装置自身を識別する識別データを受信して、上記複数の応答装置をそれぞれ識別する複数の識別データを読み取る読取方法において、
    上記受信装置が、上記複数のスロットの各スロットにおいて、上記応答装置が送信した識別データを受信し、
    上記受信装置が識別データの受信に成功したか否かに基づいて、上記処理装置が、上記複数のスロットの各スロットについて、識別データを送信した応答装置が存在しない空きスロットであるか、1つの応答装置が識別データを送信した読取スロットであるか、2以上の応答装置が識別データを送信した競合スロットであるかを判定し、
    上記処理装置が判定した判定結果に基づいて、上記処理装置が、読取スロットであると判定したスロットの数を計数して読取スロット数Rとし、競合スロットであると判定したスロットの数を計数して競合スロット数Cとし、上記応答装置が選択し得たスロットの総数Sと、上記読取スロット数Rと、上記競合スロット数Cとから、識別データを送信した応答装置の数を推定して推定応答数とし、
    上記処理装置が推定した推定応答数に基づいて、上記処理装置が、上記応答装置が選択し得るスロットの数を決定してスロット数とし、
    上記送信装置が、上記処理装置が決定したスロット数を上記応答装置に対して送信することを特徴とする読取方法。
JP2009219131A 2009-09-24 2009-09-24 読取装置及びコンピュータプログラム及び読取方法 Expired - Fee Related JP5300676B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009219131A JP5300676B2 (ja) 2009-09-24 2009-09-24 読取装置及びコンピュータプログラム及び読取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009219131A JP5300676B2 (ja) 2009-09-24 2009-09-24 読取装置及びコンピュータプログラム及び読取方法

Publications (2)

Publication Number Publication Date
JP2011070298A JP2011070298A (ja) 2011-04-07
JP5300676B2 true JP5300676B2 (ja) 2013-09-25

Family

ID=44015549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009219131A Expired - Fee Related JP5300676B2 (ja) 2009-09-24 2009-09-24 読取装置及びコンピュータプログラム及び読取方法

Country Status (1)

Country Link
JP (1) JP5300676B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102836550B (zh) * 2012-09-25 2015-07-15 陈本惠 一种棋牌桌及其计分方法
US9715604B2 (en) * 2013-05-31 2017-07-25 Nec Corporation RFID tag reading device, RFID tag reading program, and RFID tag reading method
JP6406004B2 (ja) * 2014-12-26 2018-10-17 株式会社デンソーウェーブ 無線タグ通信システム、タグリーダ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282975A (ja) * 1998-03-31 1999-10-15 Toshiba Corp 情報識別システム、情報識別システムの制御装置、情報識別システムの応答装置、及びタイムスロット管理方法
JP2006238381A (ja) * 2005-02-28 2006-09-07 Nippon Telegr & Teleph Corp <Ntt> 無線タグシステム、無線タグ識別方法及びその識別プログラム
JP4247754B2 (ja) * 2006-06-09 2009-04-02 オムロン株式会社 通信処理装置、情報処理装置、通信システム、通信処理方法、情報処理方法、およびプログラム
JP4291350B2 (ja) * 2006-10-18 2009-07-08 東芝テック株式会社 無線通信装置
JP4820734B2 (ja) * 2006-11-14 2011-11-24 株式会社日立製作所 リーダ・ライタのコマンド制御方法、プログラム、リーダ・ライタ、およびコンピュータ

Also Published As

Publication number Publication date
JP2011070298A (ja) 2011-04-07

Similar Documents

Publication Publication Date Title
US10996329B2 (en) Distance estimating system
Xie et al. Efficient tag identification in mobile RFID systems
CA2642208C (en) Wireless asset identification and location
US9213873B2 (en) Determining movement of a radio frequency identification tag using a phase difference/frequency model
CN101517599B (zh) 用于集成的读取器和标签的装置和方法
JP5300676B2 (ja) 読取装置及びコンピュータプログラム及び読取方法
JP2006238381A (ja) 無線タグシステム、無線タグ識別方法及びその識別プログラム
Lin et al. Efficient estimation and collision-group-based anticollision algorithms for dynamic frame-slotted ALOHA in RFID networks
EP2261688A1 (en) Wireless hardware device for detecting relations of distance, and system for monitoring relations of distance between wireless hardware devices
EP2341361A1 (en) Method and system for locating a hand-held terminal
US20110090063A1 (en) Apparatus and method using histogram-based techniques for avoiding overpolling
US20180268177A1 (en) Systems and Methods for Estimation of a Population of Passive RFID Sensors
CN108200534B (zh) 一种对终端进行定位的方法及设备
WO2008067107A2 (en) System and method for rfid tag communication
Xiao et al. Multi-sensor scheduling for reliable target tracking in wireless sensor networks
Kim et al. Improved 4-ary query tree algorithm for anti-collision in RFID system
Hamouda et al. Metadata-based adaptive sampling for energy-efficient collaborative target tracking in wireless sensor networks
EP4092649A1 (en) Base wireless device and communication method of base wireless device
JP4050260B2 (ja) Rfid管理装置、rfid管理方法およびrfid管理プログラム
Vahedi et al. Analytical modeling of RFID generation-2 protocol using absorbing Markov chain theorem
JP4291350B2 (ja) 無線通信装置
EP3726735B1 (en) Communication system and communication method
Larionov et al. A stochastic model for the analysis of session and power switching effects on the performance of UHF RFID system with mobile tags
JP6236616B2 (ja) 電波干渉防止機能を備えた通信装置及びその制御方法
CN103826262A (zh) 无线通信系统、无线通信方法、发送终端和接收终端

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120201

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20121207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees