(57)【要約】【課題】リーダライタを制御するための適切なパラメータを設定することができるタグアクセス制御システムを提供する。【解決手段】タグアクセス制御システム１は、パラメータに基づいて、リーダライタ２６に対してコマンドを送信し、実行結果を受信することで、ＩＣタグ３３ａとリーダライタ２６とのデータ通信を制御する制御部３と、パラメータを適切な値に調整するパラメータ調整部７とを備え、パラメータ調整部７は、パラメータの変更を繰り返すパラメータ変更部７１と、複数回変更されるパラメータそれぞれに基づくコマンドの実行結果を記録する結果蓄積部７３と、結果蓄積部７３に蓄積された実行結果に基づいて、適切なパラメータを算出する算出部７２とを含む。【選択図】図１
2007257003.tif 000002
【特許請求の範囲】
【請求項１】
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、
前記データ通信を制御するためのパラメータを記録するパラメータ記録部と、
前記パラメータに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを送信し、前記コマンドの実行結果を前記リーダライタから受信することで、前記ＩＣタグと前記リーダライタとのデータ通信を制御する制御部と、
前記パラメータを適切な値に調整するパラメータ調整部とを備え、
前記パラメータ調整部は、前記パラメータの変更を複数回繰り返すパラメータ変更部と、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が送信した複数のコマンドの実行結果を、それぞれコマンドの基となったパラメータと対応付けて記録する結果蓄積部と、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する算出部とを含む、タグアクセス制御システム。
【請求項２】
前記算出部は、前記結果蓄積部に蓄積されたパラメータの中から、コマンドの実行結果が成功である確率が最も高いパラメータを選択することで、前記適切なパラメータを算出する、請求項１に記載のタグアクセス制御システム。
【請求項３】
前記リーダライタは複数設けられ、複数のリーダライタがそれぞれ有するアンテナは、前記物品の移動経路に沿って設けられており、
ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、
受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを更に備え、
前記パラメータ記録部は、前記複数のリーダライタぞれぞれのデータ通信を制御するためのパラメータを記録し、
前記制御部は、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部を含み、複数の分割コマンドを、前記パラメータに従って、前記複数のリーダライタに順次送信し、前記複数の分割コマンドそれぞれの実行結果を前記複数のリーダライタそれぞれから受信することで、前記複数のリーダライタと前記ＩＣタグとのデータ通信を制御し、
前記パラメータ調整部において、前記パラメータ変更部は、前記複数のリーダライタについてのパラメータの変更を複数回繰り返し、前記結果蓄積部は、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が複数のリーダライタに送信した複数の分割コマンドの実行結果を、それぞれ分割コマンドの基となったパラメータと対応付けて記録し、前記算出部は、前記結果蓄積部に記録されたパラメータと分割コマンドの実行結果に基づいて、前記複数のリーダライタについての適切なパラメータを算出する、請求項１に記載のタグアクセス制御システム。
【請求項４】
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、
前記コンピュータが備えるパラメータ変更部が、前記コンピュータが備えるパラメータ記録部に記録された前記データ通信を制御するためのパラメータを複数回繰り返して変更する工程と、
前記コンピュータが備える制御部が、前記変更部によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数送信し、複数のコマンドの実行結果を受信する工程と、
前記制御部が、前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する工程と、
前記コンピュータが備える算出部が、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する工程とを含む、タグアクセス制御方法。
【請求項５】
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、
前記コンピュータが備えるパラメータ記録部に記録された、前記データ通信を制御するためのパラメータを複数回繰り返して変更するパラメータ変更処理と、
前記パラメータ変更処理によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数生成し、前記リーダライタに送信し、複数のコマンドの実行結果を受信する処理と、
前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する処理と、
前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する処理とをコンピュータに実行させる、タグアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動する物品に設けられたＩＣタグと、リーダライタとのデータ通信を制御するタグアクセス制御システム、タグアクセス制御方法およびタグアクセス制御プログラムに関する。
【背景技術】
【０００２】
近年、ＩＣタグを使って物品を認識するＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）技術が注目されている。例えば、工場や物流拠点では、ベルトコンベア、フォークリフト、台車等により部品や製品等の物品が移送される。このような物品にＩＣタグを付することによって、移送される物品の識別、管理等を行うことができる。特に、パッシブ型のＩＣタグは電池を必要とせず、小型化・低価格化できるとされ、大量の物品の識別・管理に向くと期待されている。
【０００３】
パッシブ型のＩＣタグは、アンテナを備えたリーダライタと無線によりデータの授受を行う。リーダライタのＩＣタグを検出する動作、ＩＣタグへのデータ読み書きをする動作は、アクセス制御システムにより制御される。例えば、アクセス制御システムは、ＩＣタグとのデータ通信を行わせるためのコマンドをリーダライタに送信し、リーダライタはコマンドを実行して、その結果をアクセス制御システムに返信する。
【０００４】
アクセス制御システムは、リーダライタを制御するためのパラメータを予め記録しておき、そのパラメータに従ってリーダライタにコマンドを送信する。パラメータには例えば、リーダライタがＩＣタグを検出するタイミングや、まとめて検出するＩＣタグの枚数等のような情報が含まれる。例えば、ＩＣタグ検出のタイミングを示すパラメータを調整することにより、リーダライタがＩＣタグを検出するタイミングを制御することができる。このようなパラメータは適切に設定される必要がある。
【０００５】
なぜならば、アクセス制御システムは、ＩＣタグと確実なデータ通信を行うために、リーダライタへ適切なタイミングで、適切なコマンドを送信することが重要であるからである。例えば、ベルトコンベア等で移動する複数の物品に付されたＩＣタグとデータ通信を行う場合、リーダライタのアンテナは、物品の移動経路に沿って設けられる。この場合、アクセス制御システムは、アンテナの交信範囲に物品が入っている間に、ＩＣタグの検出およびデータの読み込みまたは書き込みを確実に行うようにリーダライタを制御する必要がある。
【０００６】
そのため、例えば、複数のリーダライタを制御することによって、記録速度を保ちながらも書き込み失敗率を少なくするラベルプリンタが開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００４−８２４３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、工場や物流拠点などで、移動する物品に付されたＩＣタグにリーダライタがアクセスする場合、適切なタイミングで適切なコマンドを送信するための適切なパラメータは現場の環境に依存する。例えば、物品の数量、移動速度、アンテナ周辺の電磁界等、アクセス制御システムが適用される現場の環境によって適切なパラメータは異なる。そのため、実際にタグアクセス制御システムを動作させてみないと、適切なパラメータを見つけることはできない場合がほとんどである。
【０００８】
現状では、実際の現場でアクセス制御システムのＳＥ（Ｓｙｓｔｅｍ  Ｅｎｇｉｎｅｅｒ）や現場担当者等が試行錯誤して適切なパラメータを見つけ出して設定している。現場で何度も繰返し試験をしながら最適なパラメータを見つける作業は非常に煩雑である。そのため、適切なパラメータの設定は、ＳＥや現場担当者に大きな負担になるという課題があった。
【０００９】
そこで、本発明の目的は、リーダライタを制御するための適切なパラメータを設定することができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明にかかるタグアクセス制御システムは、アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、前記データ通信を制御するためのパラメータを記録するパラメータ記録部と、前記パラメータに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを送信し、前記コマンドの実行結果を前記リーダライタから受信することで、前記ＩＣタグと前記リーダライタとのデータ通信を制御する制御部と、前記パラメータを適切な値に調整するパラメータ調整部とを備え、前記パラメータ調整部は、前記パラメータの変更を複数回繰り返すパラメータ変更部と、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が送信した複数のコマンドの実行結果を、それぞれコマンドの基となったパラメータと対応付けて記録する結果蓄積部と、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する算出部とを含む。
【００１１】
パラメータ変更部は、パラメータの変更を複数回繰り返す。制御部は、パラメータが変更される度に、変更されたパラメータに基づいてコマンドをリーダライタに送信し、その実行結果を得る。結果蓄積部は、複数回変更されたパラメータそれぞれについて、コマンドの実行結果と、コマンドの基になったパラメータとを対応付けて記録する。すなわち、結果蓄積部には、さまざまなパラメータと、それぞれのパラメータに基づくコマンドの実行結果とが対応付けられて記録される。そのため、算出部は、結果蓄積部に記録されたデータを基に、コマンドの実行結果が改善される適切なパラメータを算出することができる。その結果、前記パラメータ調整部は、制御部がリーダライタを制御するための適切なパラメータを設定することができる。
【００１２】
本発明にかかるタグアクセス制御システムにおいて、前記算出部は、前記結果蓄積部に蓄積されたパラメータの中から、コマンドの実行結果が成功である確率が最も高いパラメータを選択することで、前記適切なパラメータを算出することが好ましい。
【００１３】
これにより、算出部は、簡単な計算処理により最適なパラメータを算出することができる。
【００１４】
本発明にかかるタグアクセス制御システムにおいて、前記パラメータ変更部は、前記結果蓄積部に既に蓄積されているパラメータとコマンドの実行結果に基づいて、実行結果の成功する確率が高いパラメータを算出し、該算出したパラメータを変更後のパラメータとすることが好ましい。
【００１５】
これにより、パラメータ変更部は、既に結果蓄積部に記録されているコマンドの実行結果を、変更後のパラメータにフィードバックさせて、変更後のパラメータが実行結果を改善させる確率を高くすることができる。パラメータ変更部は、このようなパラメータの変更を複数回行うので、パラメータは適切な値へと近づいていくことになる。
【００１６】
前記リーダライタが複数設けられ、複数のリーダライタがそれぞれ有するアンテナは、前記物品の移動経路に沿って設けられている場合において、本発明にかかるタグアクセス制御システムは、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを更に備え、前記パラメータ記録部は、前記複数のリーダライタぞれぞれのデータ通信を制御するためのパラメータを記録し、前記制御部は、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部を含み、複数の分割コマンドを、前記パラメータに従って、前記複数のリーダライタに順次送信し、前記複数の分割コマンドそれぞれの実行結果を前記複数のリーダライタそれぞれから受信することで、前記複数のリーダライタと前記ＩＣタグとのデータ通信を制御し、前記パラメータ調整部において、前記パラメータ変更部は、前記複数のリーダライタについてのパラメータの変更を複数回繰り返し、前記結果蓄積部は、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が複数のリーダライタに送信した複数の分割コマンドの実行結果を、それぞれ分割コマンドの基となったパラメータと対応付けて記録し、前記算出部は、前記結果蓄積部に記録されたパラメータと分割コマンドの実行結果に基づいて、前記複数のリーダライタについての適切なパラメータを算出することが好ましい。
【００１７】
制御部は、分割部が生成した複数の分割コマンドを、複数のリーダライタに順次送信して割り当てるので、コマンド受付部が受け付けた１つのコマンドを、複数のリーダライタに分散して実行させることができる。複数のリーダライタがそれぞれ有するアンテナは、ＩＣタグの移動経路に沿って配置されている。そのため、ＩＣタグが設けられた物品が、複数のアンテナの交信範囲を順に移動する際に、ＩＣタグに対するコマンドを実行するための分割コマンドがそれぞれのリーダライタで分散して実行される。前記制御部は、パラメータ記録部の複数のリーダライタについてのパラメータに従って、分割コマンドを割り当てる。そのため、前記パラメータ調整部によって、複数のリーダライタについて適切なパラメータが設定されることにより、適切なタイミングで、適切なリーダライタに分割コマンドを割り当てることができる。すなわち、制御部がコマンドの処理を複数のリーダライタに分散させるとともに、パラメータ調整部が複数のリーダライタについて適切な分散処理を行うためのパラメータを設定することで、処理の効率および確実性が向上する。
【００１８】
また、制御対象のリーダライタが複数あり、１つのコマンドを複数のリーダライタで分散させる場合には、それぞれのリーダライタについて適切なパラメータを設定する必要が生じる。このような場合に、パラメータ調整部がそれぞれのリーダライタごとに適切なパラメータを算出するので、タグアクセス制御システムの設置や運用の効率が、１つのリーダライタだけ制御する場合に比べてさらに高くなる。
【００１９】
本発明にかかるタグアクセス制御方法は、アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、前記コンピュータが備えるパラメータ変更部が、前記コンピュータが備えるパラメータ記録部に記録された前記データ通信を制御するためのパラメータを複数回繰り返して変更する工程と、前記コンピュータが備える制御部が、前記変更部によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数送信し、複数のコマンドの実行結果を受信する工程と、前記制御部が、前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する工程と、前記コンピュータが備える算出部が、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する工程とを含む。
【００２０】
タグアクセス制御プログラムは、アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、前記コンピュータが備えるパラメータ記録部に記録された、前記データ通信を制御するためのパラメータを複数回繰り返して変更するパラメータ変更処理と、前記パラメータ変更処理によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数生成し、前記リーダライタに送信し、複数のコマンドの実行結果を受信する処理と、前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する処理と、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する処理とをコンピュータに実行させる。
【発明の効果】
【００２１】
本発明によれば、リーダライタを制御するための適切なパラメータを設定することができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施の一形態を詳細に説明する。
【００２３】
（第１の実施形態）
図１は、本実施形態におけるタグアクセス制御システムを含む、ＩＣタグアクセスシステム全体の構成を示す機能ブロック図である。図１に示すタグアクセス制御システム１は、所定のソフトウエアに従ってタグアクセス制御を実行するコンピュータ１１によって実現される。タグアクセス制御システム１は、制御部３、パラメータ調整部７、パラメータ記録部１３、移動情報記録部１５、処理データ記録部１８、タイマ２１、速度測定部２３を備える。
【００２４】
コンピュータ１１には、センサ３１、リーダライタ（以下、Ｒ／Ｗと称する。）２６が接続されている。また、コンピュータ１１は、センサ３１を制御するためのデバイスドライバ２４、Ｒ／Ｗ２６を制御するためのデバイスドライバ２５、ユーザインタフェース３９を備える。
【００２５】
図１に示す制御部３、パラメータ変更部７１、算出部７２、タイマ２１、速度測定部２３、デバイスドライバ２４、２５は、コンピュータ１１が実行する各機能を機能ブロックとして記載したものである。これらの機能ブロックは、コンピュータ１１が備えるＣＰＵが、所定のプログラムを実行することによって機能的に実現される。ユーザインタフェース３９は、コンピュータ１１が備えるマウス、キーボード等の入力装置およびディスプレイ、プリンタ、スピーカ等の出力装置によって実現される。
【００２６】
パラメータ記録部１３、移動情報記録部１５、処理データ記録部１８、結果蓄積部７３は、例えば、コンピュータ１１が備える半導体メモリ、ハードディスク、フレキシブルディスク、ＤＶＤ等の内部記憶装置のほか、コンピュータ１１がアクセス可能な外部記憶装置により実現される。
【００２７】
コンピュータ１１には、例えば、パーソナルコンピュータ、サーバ、ワークステーション等の汎用コンピュータを用いることができる。また、コンピュータ１１は、Ｒ／Ｗ制御専用のコンピュータであってもよい。
【００２８】
Ｒ／Ｗは、ＩＣタグにデータを送信し、送信データに対するＩＣタグの応答データを受信することによって、ＩＣタグに記録されたデータの読み取りまたは、ＩＣタグへのデータの書き込みを行う装置である。Ｒ／Ｗ２６にはアンテナ３２が設けられている。Ｒ／Ｗ２６は、アンテナ３２の交信範囲にあるＩＣタグと無線によるデータの送受信を行う。Ｒ／W２６には複数のアンテナが設けられてもよいが、ここでは説明を簡単にするために単一のアンテナが設けられている例を説明する。
【００２９】
図１に示す例では、ベルトコンベア４１が、アンテナ３２の交信範囲を通るように配置されている。これにより、ベルトコンベア４１に載せられた物品３３ａは、アンテナ３２の交信範囲を通過する。物品３３ａには、ＩＣタグ３４ａが付されているので、物品３３ａがアンテナ３２の交信範囲内に入っているときに、Ｒ／Ｗ２６とＩＣタグ３４ａとの無線によるデータの送受信が可能になる。
【００３０】
センサ３１は、ベルトコンベア４１の上流側に設けられている。センサ３１は、ベルトコンベア４１上を移動して、アンテナ３２の交信範囲へ入っていく物品を検出する。センサ３１が物品を検出した時間は移動情報記録部１５へ記録される。また、速度測定部２３は、検出された物品の速度を測定し、移動情報記録部１５へ記録する。
【００３１】
このように、移動情報記録部１５には、ＩＣタグの移動状況に関するデータが記録される。移動状況に関するデータには、センサ３１、アンテナ３２の配置に関するデータが含まれる。例えば、物品の移動経路上で、センサ３１により検出される位置、アンテナ３２の交信範囲に入る位置等の情報が移動状況に関するデータに含まれる。
【００３２】
パラメータ記録部１３には、Ｒ／Ｗ２６とＩＣタグとのデータ通信を制御するためのパラメータが記録される。パラメータには、データ通信の時機を表す情報、１つのタググループに含まれるＩＣタグの枚数、ＩＣタグへのデータアクセスに要する時間等、データ通信の制御に関する情報が含まれる。なお、本実施形態においては、データ通信の時機を表す情報を示すパラメータの例を後に説明する。
【００３３】
パラメータは、例えば、ユーザインタフェース３９を介して、ユーザから予め入力され、パラメータ記録部１３に記録され、パラメータ調整部７により適切な値に調整される。
【００３４】
処理データ記録部１８には、Ｒ／Ｗ２６がＩＣタグへ書き込もうとしているデータや、ＩＣタグから読み込んだデータ等のように、ＩＣタグとタグアクセス制御システム１との間で通信されるデータが記録される。
【００３５】
制御部３は、パラメータ記録部１３に記録されたパラメータ、移動情報記録部１５に記録されたデータ、処理データ記録部１８に記録されたデータおよびタイマ２１による現在時刻とを用いて、Ｒ／Ｗ２６にＩＣタグとデータの送受信を行わせるためのコマンドを生成する。コマンドは、デバイスドライバ２５を介してＲ／Ｗ２６に伝えられる。これにより、タグアクセス制御システム１は、ＩＣタグの動きに応じてＲ／Ｗ２６を制御することができる。
【００３６】
パラメータ調整部７は、パラメータ変更部７１、算出部７２、結果蓄積部７３を備える。パラメータ変更部７１は、所定のプログラムが示す手順に従って、パラメータ記録部１３のパラメータを変更する。例えば、パラメータが所定の範囲内を所定の間隔で走査するように順次変更されてもよいし、所定の範囲内からランダムに抽出した値に変更されてもよい。また、パラメータ変更部７１は、後述する結果蓄積部７３に記録された実行結果とパラメータに基づいてパラメータを変更してもよい。本実施形態においては、結果蓄積部７３に記録されたデータに基づいてパラメータが変更される場合の例を後に説明する。
【００３７】
制御部３は、パラメータ変更部７１によって変更されたパラメータを用いてコマンドを生成し、Ｒ／Ｗ２６に送信する。制御部３は、そのコマンドの実行結果を受け取って結果蓄積部７３へ記録する。パラメータ変更部７１は、複数回にわたってパラメータの変更を繰返し、パラメータが変更される度に、制御部３は、変更後のパラメータでコマンドを実行する。コマンドの実行結果は、そのパラメータと対応付けられて結果蓄積部７３へ記録される。算出部７２は、結果蓄積部７３に記録された複数のパラメータにおける実行結果を基に、適切なパラメータを算出する。パラメータ変更部７１は、パラメータ記録部１３のパラメータを、算出部７２が算出した適切なパラメータに変更する。
【００３８】
なお、タグアクセス制御システム１の構成は、図１に示す構成に限られない。例えば、タグアクセス制御システム１の機能を、複数のコンピュータで分散させることもできる。また、制御部３、パラメータ変更部７１、算出部７２、タイマ２１、速度測定部２３の機能を実現するためのプログラムを、ネットワークまたは記録媒体を通じてコンピュータ１１へインストールすることによって、タグアクセス制御システム１を構築することができる。
【００３９】
次に、タグアクセス制御システム１の動作について説明する。本実施形態におけるタグアクセス制御システム１は、本運用モードと、パラメータ調整モードとの２通りのモードで動作する。本運用モードの動作は、ＩＣタグアクセス制御システム１が試験ではなく本番で運用される場合の動作である。パラメータ調整モードの動作は、本番前にパラメータを適切な値に調整するための試験的な動作である。これらのモードの切り替えは、例えば、ユーザインタフェース３９を介してユーザによって行われる。まず、本運用モードの動作について説明する。
【００４０】
（本運用モードにおけるＩＣタグへのデータアクセス処理）
図２は、タグアクセス制御システム１が、本運用モードにおいて、ＩＣタグとデータ通信するためのコマンドをＲ／Ｗ２６に実行させる処理の一例を示すフローチャートである。
【００４１】
まず、センサ３１が、ベルトコンベア４１を移動する物品を検出し、速度測定部２３がその物品の速度ｖを測定する（ステップＳ１０１）。速度ｖおよびセンサ３１が物品を検出した時刻Ｔ0が、移動情報記録部１５に記録される。
【００４２】
次に、制御部３は、移動情報記録部１５に記録されたデータおよびステップＳ１０１で測定された速度ｖに基づいて、Ｒ／Ｗ２６にコマンドを実行させる実行時刻ｔeを算出する（ステップＳ１０２）。例えば、センサ３１が物品を検出する位置と物品がアンテナ３２の交信範囲に入る位置との距離ｄを示す情報が移動情報記録部１５に記録されている場合に実行時刻ｔeを算出する例を説明する。
【００４３】
図３は、物品の移動経路、センサ３１、アンテナ３２の位置関係の例を模式的に示す図である。図３において、ｘ軸は物品の移動経路を示している。ｐ１は、センサ３１が物品を検出するｘ軸上の位置、ｐ２は、物品がアンテナ３２の交信範囲に入るｘ軸上の位置を示す。物品がｐ１を通過した時刻が時刻Ｔ0であり、ｘ軸においてｐ１とｐ２との間の距離がｄである。この場合、実行時刻ｔeは、ｔe＝Ｔ0＋（ｄ／ｖ）で算出される。実行時刻ｔeは例えば、ミリ秒単位で算出される。
【００４４】
ステップＳ１０２で得られた実行時刻ｔeは、計算により求められた理論上の値であり、実際の動作において、最適な実行時刻は上記ｔeからずれる。そこで、制御部３は、パラメータ記録部１３に記録されたデータ通信の時機を示すパラメータを用いて、実行時刻ｔeを補正する（ステップＳ１０３）。制御部３は、例えば、ｔeに補正パラメータｔpを加えて実行時刻ｔeを補正する。補正パラメータｔpは、データ通信の時機を示すパラメータの一例である。補正パラメータｔpにより補正された実行時刻ｔeは、ｔe＝Ｔ0＋（ｄ／ｖ）＋ｔpとなる。これによって、実行時刻ｔeは実際に物品がアンテナ３２の交信範囲内に入る時刻に近づく。
【００４５】
図４は、パラメータ記録部１３に記録されたデータ構造の一例を示す図である。図４に示す例では、パラメータ名と、その値が対応付けられて記録されている。
【００４６】
制御部３は、補正された実行時刻ｔe＝Ｔ0＋（ｄ／ｖ）＋ｔpで、Ｒ／Ｗ２６にコマンドを実行させる。コマンドは、例えば、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令である。
【００４７】
図５（ａ）は、ＩＣタグからデータを読み出すコマンドの例である。図５（ａ）に示すコマンドには、ＲＥＡＤ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とが含まれている。図５（ａ）に示すコマンドは、ＩＣタグのメモリの先頭（０）から１０バイト分のデータを読み込む（ＲＥＡＤ）命令を示している。
【００４８】
図５（ｂ）は、ＩＣタグにデータを書き込むコマンドの例である。図５（ｂ）に示すコマンドには、ＷＲＩＴＥ命令と、書き込みを開始する位置を示すオフセットと、書き込むデータの量を示すバイト数とに加えて、書き込むべきデータが含まれている。図５（ｂ）に示すコマンドは、ＩＣタグのメモリの先頭（０）から１０バイト分の領域に“Ｄａｔａ１”を書き込む（ＷＲＩＴＥ）命令を示している。
【００４９】
制御部３は、図５（ａ）または（ｂ）に示すようなコマンドをＲ／Ｗ２６に送信する。Ｒ／Ｗ２６は、コマンドを受け取ると、アンテナ３２の交信範囲にあるＩＣタグのＩＤを検出し、それぞれのＩＣタグに対して、データの読み込みまたは書き込み動作を行う。Ｒ／Ｗは、例えば、アンチコリジョンと呼ばれる技術を利用して、Ｒ／Ｗが備えるアンテナの交信範囲にある複数のＩＣタグのＩＤを検出し、検出した各ＩＤのタグに対してデータの読み込み、または書き込みを実行することができる。
【００５０】
Ｒ／Ｗ２６は、例えば、ＩＣタグに対してデータを読み込む動作を実行した場合は、ＩＣタグのＩＤと読み込んだデータを実行結果として制御部３へ返信する。また、Ｒ／Ｗ２６が、例えば、ＩＣタグに対してデータを書き込む動作を実行した場合は、ＩＣタグのＩＤと書き込みに成功したか否かを示すデータを制御部３へ返信する。
【００５１】
制御部３がＲ／Ｗ２６から受信したデータは、コマンドの実行結果としてパラメータ調整部７の結果蓄積部７３に記録され、パラメータ調整部７が後述するパラメータ調整処理で用いることができる。実行結果として記録されるデータとして、例えば、ＩＣタグのＩＤ、１つのコマンドで処理されたＩＣタグの数、ＩＣタグから読み込んだデータのサイズ、ＩＣタグに書き込んだデータのサイズ、１つのコマンド実行に要した時間、コマンド実行した時刻等が記録される。
【００５２】
（パラメータ調整モードにおけるパラメータ調整処理）
次に、タグアクセス制御システム１のパラメータ調整モードにおける動作の例を説明する。図６は、パラメータ調整部７が、パラメータ調整モードにおいて、パラメータを調整して適切な値を求める処理の一例を示すフローチャートである。
【００５３】
まず、大まかな処理の流れについて説明する。パラメータ調整部７は、パラメータ記録部１３に記録されているパラメータ（以下、設定パラメータと称する）と、設定パラメータを変更するためにパラメータ変更部７１によって算出される、変更後のパラメータの候補（以下、候補パラメータと称する）とのそれぞれについて、実行結果を収集する。これらの実行結果を比較し、候補パラメータで実行結果が改善されると判断された場合に、設定パラメータが候補パラメータに変更される。この処理を複数回繰り返すことで、設定パラメータが適切な値に近づいてゆく。
【００５４】
以下、図６に示す処理の詳細を、パラメータ調整部７の調整の対象となるパラメータが、図４に示す補正パラメータｔpである場合の例を説明する。
【００５５】
パラメータ調整モードが始まると、制御部３はパラメータ記録部１３に記録されている設定パラメータに基づいてコマンドを生成し、そのコマンドをＲ／Ｗ２６に実行させた場合の実行結果を示すデータを収集する（ステップＳ１）。制御部３は、コマンドの実行を複数回繰返し、複数の実行結果を得る（ステップＳ２）。
【００５６】
例えば、制御部３は、物品がセンサ３１で検出されてから、実行時刻ｔe＝Ｔ0＋（ｄ／ｖ）＋ｔpに、ＩＣタグからデータを読み込むコマンドをＲ／Ｗ２６に実行させる。その後、物品がアンテナ３２の交信範囲を通過している間、繰返し同じコマンドをＲ／Ｗ２６に実行させる。制御部３は、各コマンドについて、データの読み込み成功したＩＣタグの枚数を実行結果として結果蓄積部７３に記録する。このように、物品がセンサ３１で検出されてからアンテナ３２の交信範囲を通過している間に実行される一連のコマンドを１回のサイクルとする。制御部３はこのサイクルを複数回繰り返すことで、複数サイクル分の設定パラメータについての実行結果が結果蓄積部７３に記録される。設定パラメータと実行結果は対応付けられて記録される。
【００５７】
図７（ａ）は、結果蓄積部７３に記録される実行結果を示すデータの一例を示す図である。図７（ａ）に示す実行結果のデータには、実行結果がどのような値のパラメータについての実行結果であるかを識別するためのＩＤが割り当てられている。例えば、ある同じ値のパラメータに基づいて実行されたコマンドについて複数の実行結果がある場合に、それらのコマンド実行結果に同じＩＤが割り当てられる（図７（ａ）では、ＩＤ＝０００１）。
【００５８】
それぞれのＩＤには、パラメータの値が対応付けられて記録されている。図７（ｂ）は、ＩＤとパラメータが対応付けて記録されたテーブルの例である。図７（ｂ）では、ＩＤそれぞれにパラメータｔpの値が対応付けられて記録されている。なお、ＩＤに対応付けられて記録されるパラメータは複数あってもよい。例えば、物品の移動速度ｖが変化するとパラメータｔpの最適値も変化する場合があるので、異なる複数の移動速度帯ごとにパラメータｔpが記録されていてもよい。
【００５９】
図７（ａ）に示す実行結果のデータには、ＩＤ（＝０００１）が対応している。これは、図７（ｂ）のＩＤ＝０００１に対応するパラメータの値、すなわちｔp＝３０の場合のコマンド実行結果であることを示している。
【００６０】
図７（ａ）に示す例では、コマンドを実行した時刻と、コマンド実行の結果とが対応付けられて、１回目から４回目のサイクルについて記録されている。コマンド実行時刻は、実行時刻ｔe＝Ｔ0＋（ｄ／ｖ）＋ｔpを時刻「０」として、そこからの経過時間（単位はミリ秒）で表されている。コマンド実行の結果は、コマンド実行により処理されたＩＣタグの枚数で表されている。なお、図７（ａ）に示す例では簡単のために５０ミリ秒間隔でコマンドが実行された場合の例を示しているが、一般的にはコマンドの実行間隔は不規則であることが多く、実際に実行された時刻が記録される。
【００６１】
図７（ａ）に示すデータは、例えば、１回目のサイクルの時刻「０」におけるコマンド実行の結果、処理されたＩＣタグは０枚であることを示している。同様に、時刻「５０」で実行されたコマンドにおいて処理に成功したＩＣタグの数は「０」である。時刻「１００」では「０」枚、時刻「１５０」では「１」枚、時刻「２００」では「２」枚、時刻「２５０」では「１」枚、時刻「３００」では「０」枚のＩＣタグがコマンドにより処理されている。
【００６２】
図７（ａ）に示す実行結果のように、例えば、サイクル４回分の実行結果が結果蓄積部７３に記録されると、パラメータ変更部７１は結果蓄積部７３に記録された実行結果を用いて候補パラメータを算出する（ステップＳ３）。候補パラメータは、変更後の設定パラメータの候補となるパラメータである。パラメータ変更部７１ａは、例えば、結果蓄積部７３に記録された実行結果を基に、実行結果が最も良かった実行タイミングを抽出し、候補パラメータが、その実行タイミング付近を表す値となる確率が高くなるように候補パラメータを算出する。候補パラメータ算出処理の詳細な例は後述する。算出された候補パラメータは、ＩＤと対応付けられて結果蓄積部７３に記録される。例えば、図７（ｂ）に示すテーブルに候補パラメータと対応するＩＤが追加される。ここでは、一例として、ＩＤ＝００２のパラメータｔp＝４０を候補パラメータの１つとする。
【００６３】
制御部３は、パラメータ変更部７１が算出した候補パラメータ（例えばｔp＝４０）に基づいたコマンドを複数実行させ、その実行結果を表すデータを収集する（ステップＳ４、５）。実行結果を示すデータは、結果蓄積部７３に記録される。ステップＳ４、５の処理は、上記ステップＳ１、２の処理と同様に行われる。ステップＳ４、５で収集された実行結果も図７（ａ）に示すデータと同様の構成で記録される。その際、実行結果のデータは、ステップＳ３で算出された候補パラメータのＩＤ（＝０００２）に対応付けられて記録される。
【００６４】
候補パラメータに基づくコマンド実行の結果が記録されると、算出部７２は、候補パラメータに基づくコマンド実行の結果と、設定パラメータに基づくコマンド実行結果を比較する（ステップＳ６）。本実施形態においては、比較される実行結果として、アクセスに成功したＩＣタグの枚数、コマンド実行したがアクセスできなかった回数、所定の枚数のＩＣタグへのアクセスに要したコマンドの回数を用いる場合の例を後述する。
【００６５】
ここで比較される実行結果はこれらに限られない。例えば、コマンドの成功または失敗を表すデータ、アクセスしたデータのサイズ、アクセスに要した時間、処理効率等を比較対象の実行結果として用いることができる。
【００６６】
比較処理（ステップＳ６）において、改善ありと判断された場合（ステップＳ７でＹＥＳの場合）、パラメータ変更部７１は、候補パラメータを設定パラメータとしてパラメータ記録部１３に記録する（ステップＳ８）。改善なしと判断された場合（ステップＳ７でＮＯの場合）、パラメータ記録部１３に記録された設定パラメータは変更されない。
【００６７】
その後、算出部７２は、パラメータ調整を終了するか否かの判断を行う（ステップＳ９）。ステップＳ９において算出部７２は、例えば、ステップＳ６の比較処理で、改善なしと判断される場合が所定回数以上続いた場合に、パラメータ調整を終了すると判断することができる。また、ユーザインタフェース３９を介して、ユーザからパラメータ調整を終了するか否かを示すデータの入力を受け付けることもできる。
【００６８】
パラメータ調整終了（ステップＳ９でＹＥＳ）と判断されるまで、ステップＳ３〜８の処理が繰り返される。ステップＳ３〜Ｓ８が処理を繰り返されると、パラメータ記録部１３のパラメータの改善も繰り返される。その結果、パラメータ記録部１３のパラメータに基づくコマンドの実行結果が改善されてゆく。すなわち、パラメータ記録部１３のパラメータが適切な値に調整される。
【００６９】
（比較処理）
ここで、図６のフローチャートにおける比較処理（ステップＳ６）の具体例を説明する。図８は、算出部７２が候補パラメータに基づく実行結果と設定パラメータに基づく実行結果とを比較する処理の一例を示すフローチャートである。
【００７０】
算出部７２は、設定パラメータに基づく１サイクルのコマンド実行において処理が成功したＩＣタグの数の全サイクル（１〜４回）における平均Ｎｃと、候補パラメータに基づく１サイクル分のコマンド実行において処理が成功したＩＣタグの数の全サイクル（１〜４回）における平均Ｎｋとを算出する（Ｓ６０１）。
【００７１】
図７（ａ）に示す設定パラメータに基づくコマンドの実行結果の例では、１回目のサイクルにおける結果のうち、コマンドによる処理が成功したＩＣタグの数は、１＋２＋１＝４である。２回目の成功数は２＋１＋１＝４、３回目の成功数は３＋１＝４、４回目の成回数は１＋２＝３である。したがって、１〜４回目の成功数の平均は「３．７５」回である。
【００７２】
なお、候補パラメータに基づくコマンドの実行結果および設定パラメータに基づくコマンドの実行結果において双方の総コマンド実行回数が同じであれば、平均のかわりに成功数の和を計算してもよい。また、例えば、４つの物品が１グループで移動するため、４枚のＩＣタグに同時にアクセスする必要がある状況等では、１サイクルのコマンド実行で、４枚のＩＣタグの処理に成功した場合に成功数「１」、４枚に満たない場合は成功数「０」としてもよい。
【００７３】
算出部７２は、候補パラメータについての平均成功数Ｎｋと設定パラメータについての平均成功数Ｎｃを比較する（ステップＳ６０２）。Ｎｋ＞Ｎｃならば、候補パラメータに基づくコマンドの平均成功数が大きいので、算出部７２は、改善ありと判断する（ステップＳ６０７）。一方Ｎｋ＜Ｎｃならば、改善なしと判断される（ステップＳ６０８）。
【００７４】
Ｎｋ＝Ｎｃならば判断不可能なので、算出部７２は、候補パラメータに基づくコマンドの無駄回数の平均Ｗｋおよび設定パラメータに基づくコマンドの無駄回数の平均Ｗｃを算出する（ステップＳ６０３）。無駄回数とは、コマンド実行を開始してから、初めてコマンドが成功するまでに、コマンド実行したがアクセスできなかった回数である。すなわち、無駄に実行したコマンドの数が無駄回数である。
【００７５】
例えば、図７（ａ）に示す実行結果の１回目において、時刻「１５０」で初めてコマンドが成功している。コマンドが成功するまで、時刻「０」、「５０」および「１００」で実行されたコマンドにおいて、処理されたＩＣタグ数は「０」であり、コマンドの実行は無駄になっている。この場合、無駄回数は「３」とすることができる。同様にして、２回目の無駄回数は「１」、３回目の無駄回数は「２」、４回目の無駄回数は「４」となる。したがって、１〜４回目の平均無駄回数は「３」と計算される。
【００７６】
算出部７２は、このようにして計算したＷｋとＷｃを比較し（ステップＳ６０４）、Ｗｋ＜Ｗｃならば、候補パラメータに基づくコマンドの平均無駄回数の方が小さいので、算出部７２は、改善ありと判断する（ステップＳ６０７）。一方Ｗｋ＞Ｗｃならば、改善なしと判断される（ステップＳ６０８）。
【００７７】
Ｗｋ＝Ｗｃならば判断不可能なので、算出部７２は、候補パラメータに基づくコマンドの実働回数の平均Ｍｋおよび設定パラメータに基づくコマンドの実働回数の平均Ｍｃを算出する（ステップＳ６０５）。実働回数は、所定の枚数のＩＣタグへのアクセスに要したコマンドの回数である。ここでは、一例として、４枚のＩＣタグを処理するのに要したコマンドの回数を実働回数とする。
【００７８】
例えば、図７（ａ）に示す実行結果の１回目では、時刻「１５０」、「２００」および「２５０」の３回のコマンド実行により、４枚のＩＣタグが処理されている。この場合、実働回数を「３」とすることができる。同様に、２回目の実働回数は「３」、３回目の実働回数は「２」とすることができる。４回目は３枚しかＩＣタグが処理されていない。この場合、実働回数は、例えば、１サイクルで実行されうる最大の回数とすることができる。ここでは、４回目の実働回数を「７」とする。したがって、１〜４回の平均実働回数は、約「４」と計算される。
【００７９】
算出部７２は、ＭｋとＭｃを比較する（ステップＳ６０６）。Ｍｋ＜Ｍｃならば、候補パラメータに基づくコマンドの平均実働回数の方が小さいので、処理効率が上がったとして、算出部７２は改善ありと判断する（ステップＳ６０７）。一方、Ｍｋ＞Ｍｃならば、改善なしと判断される（ステップＳ６０８）。
【００８０】
なお、実働回数は、上記例にあげた４枚のＩＣタグを処理するのに要するコマンドの実行回数に限られない。例えば、コマンド実行１回あたりの処理ＩＣタグ枚数や、１枚のＩＣタグを処理するのに要するコマンドの実行回数等、コマンド実行の処理効率を示す値を実働回数とすることができる。
【００８１】
以上のようにして、実行結果の比較処理においては、（１）コマンド実行の成功によって処理されたＩＣタグの枚数、（２）無駄になったコマンド実行の回数、（３）所定の枚数のＩＣタグを処理するのに要したコマンド実行の回数が、この優先順位で比較される。その結果、改善ありか否かを示すデータが得られる。
【００８２】
以上、図８に示した比較処理は一例に過ぎず、本発明に実施態様はこれに限られない。例えば、ユーザインタフェース３９を介して実行結果をユーザに表示し、ユーザから改善の有無を示すデータの入力を受け付けてもよい。
【００８３】
（候補パラメータ設定処理の例）
ここで、図６のフローチャートにおける候補パラメータの算出処理（ステップＳ３）の例を説明する。図９は、パラメータ変更部７１が候補パラメータを算出する処理の例を示すフローチャートである。
【００８４】
パラメータ変更部７１は、まず、設定パラメータに基づくコマンドの実行結果を参照して、各サイクルにおけるタグ検出時間を算出する（ステップＳ３０１）。タグ検出時間は、１つのサイクルで最初にタグが検出された時刻からタグが検出されなくなった時刻までの時間である。
【００８５】
図７（ａ）に示す処理結果の例において、例えば、１つのサイクルで処理すべきＩＣタグの数が４枚であった場合、１回目のサイクルでは、時刻「１５０」から時刻「３００」までがタグ検出時間となる。同様に、２回目のサイクルにおけるタグ検出時間は時刻「５０」〜時刻「２００」、３回目のサイクルにおけるタグ検出時間は時刻「１００」〜「２００」となる。４回目のサイクルでは３枚のタグしか処理されていないが、タグ検出時間は時刻「２００」〜「３００」となる。
【００８６】
次に、パラメータ変更部７１は、この設定パラメータにおける各サイクルのタグ検出時間の重なり具合を算出し、うち最大に重なる範囲内で最小の時刻ｔｓを求める（ステップＳ３０２）。図７（ａ）に示す処理結果の例では、時刻「１００」では、２回目、３回目のタグ区検出時間が重なっており、時刻「１５０」では１回目、２回目、３回目のタグ検出時間が重なっている。時刻「２００」、「２５０」では、１回目、４回目のタグ検出時間が重なっている。タグ検出時間が最大に重なるのは時刻「１５０」である。そのため、パラメータ変更部７１は、時刻「１５０」をｔｓとする。
【００８７】
ステップＳ３０２の処理において求められるｔｓは、実行結果全体において、実行時刻ｔe＝Ｔ0＋（ｄ／ｖ）＋ｔpから何ミリ秒後に実際にタグ検出が行われる可能性が高いかを示す値である。したがって、実行時刻ｔeからｔｓミリ秒だけずらした時刻が適切な実行タイミングとなる可能性が高い。すなわち、ステップＳ３０２で求められる値は、実行結果全体からみて、実行結果が改善される可能性が高くなるような、好ましいパラメータの変化量を表す値である。
【００８８】
なお、各サイクルにおけるタグ検出時間が重なる時間帯のうち最小の時刻をｔｓとする例を示したが、ｔｓの算出方法はこれにかぎられない。
【００８９】
次に、パラメータ変更部７１は、時刻ｔｓを基に標準偏差ｓを決定する（ステップＳ３０３）。決定された標準偏差ｓは、結果蓄積部７３に記録される。ｔｓ＞０の場合、パラメータ変更部７１は、標準偏差ｓ＝ｔｓとする。ｔｓ＝０の場合、タグ検出の可能性のピークがすでに過ぎてしまっている可能性があるので、パラメータ変更部７１は、あらかじめ初期設定されている標準偏差を標準偏差ｓとして用いる。
【００９０】
パラメータ変更部７１は、標準偏差ｓの正規分布を用いてパラメータの変化量を求める（ステップＳ３０４）。例えば、平均が０、標準偏差ｓの正規分布に従う正の乱数ｒａｎを発生させる。乱数ｒａｎを、設定パラメータからの変化量とする。乱数ｒａｎは、所定の範囲で発生させる。図１０は、平均が０、標準偏差ｓの正規分布を表すグラフである。図１０に示すグラフは、縦軸に確率、横軸ｔeからの経過時間、すなわちパラメータの変化量を示している。図１０に示す正規分布は、０が発生する確率が最も高く、−ｔｓ〜ｔｓの値が発生する確率が約６８．２％である。パラメータ変更部７１は、Ｒmaxを最大値と定めて、乱数ｒａｎを例えば、０＜ｒａｎ＜Ｒmaxの範囲で発生させる。
【００９１】
パラメータ変更部７１は、乱数ｒａｎを設定パラメータ（ｔp）に足した値（ｔp＋ｒａｎ）を候補パラメータとして算出する（ステップＳ３０５）。ここで、ｔｓ＝０の場合、パラメータ変更部７１は、乱数ｒａｎに−１を掛けて符号を逆にする。ｔｓ＝０の場合は、タグ検出の可能性のピークがすでに過ぎてしまっている可能性があり、設定パラメータで示される実行タイミングが遅すぎることを意味している。そのため、パラメータ変更部７１は、ｔｓ＝０の場合は、ｒａｎを負の値にすることで、候補パラメータが示すコマンド実行タイミングを、設定パラメータが示す実行タイミングよりも早く設定する。
【００９２】
以上、図９に示した処理によって、パラメータ変更部７１は、好ましい変化量であるｔｓを平均とした正規分布に従う乱数ｒａｎを用いて候補パラメータを算出することができる。なお、ここで正規分布を用いたのは一例であって、他の確率分布を用いて候補パラメータを算出してもよい。
【００９３】
（第２の実施形態）
図１１は、本実施形態におけるタグアクセス制御システムを含むシステム全体の構成を示す機能ブロック図である。図１１において、図１と同じ部分には同じ番号を付す。図１に示すタグアクセス制御システム１ａは、所定のソフトウエアに従ってタグアクセス制御を実行するコンピュータ１１ａによって実現される。コンピュータ１１ａには、センサ３１、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃが接続されている。
【００９４】
Ｒ／Ｗ２６ａにはアンテナＡ１、Ｒ／Ｗ２６ｂにはアンテナＡ２、Ｒ／Ｗ２６ｃにはアンテナＡ３がそれぞれ設けられている。Ｒ／Ｗ２６ａは、アンテナＡ１の交信範囲にあるＩＣタグと無線によるデータの送受信を行う。Ｒ／Ｗ２６ｂ、Ｒ／Ｗ２６ｃも同様に、それぞれアンテナＡ２、Ａ３の交信範囲にあるＩＣタグと無線によるデータ送受信を行う。なお、１つのＲ／Ｗが１つのアンテナを備えてもよいし、複数のアンテナを備えてもよい。
【００９５】
図１１に示す例では、アンテナＡ１、Ａ２、Ａ３は、互いに一定の間隔をおいて、一列に配置されている。アンテナＡ１、Ａ２、Ａ３の配置方向に沿って、ベルトコンベア４１が配置されている。これにより、ベルトコンベア４１に載せられた物品３３ａは、アンテナＡ１、Ａ２、Ａ３の交信範囲を順に通過するように移動する。物品３３ａには、ＩＣタグ３４ａが付されている。
【００９６】
ベルトコンベア４１の上流側には、センサ３１が設けられている。センサ３１は、ベルトコンベア４１上を移動して、アンテナＡ１の交信範囲へ入っていく物品の速度を検出する。
【００９７】
コンピュータ１１ａを動作させるソフトエウエアには、例えば、ＩＣタグとのデータの送受信をするためのコマンドを発行するアプリケーション１２が含まれる。タグアクセス制御システム１ａは、このアプリケーション１２の下位のミドルウエアが、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃおよびセンサ３１を制御する処理をコンピュータ１１ａに実行させることで実現される。アプリケーション１２は、例えば、工程管理、物流管理、生産管理等の処理を行うソフトウエアである。
【００９８】
また、コンピュータ１１ａには、センサ３１を制御するためのデバイスドライバ２４および、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃそれぞれを制御するためのデバイスドライバ２５ａ、２５ｂ、２５ｃが設けられている。タグアクセス制御システム１ａは、デバイスドライバ２５ａ、２５ｂ、２５ｃを介して、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃを制御することができる。
【００９９】
タグアクセス制御システム１ａは、コマンド受付・返却部２、制御部３ａ、検出部４、分割部５、パラメータ記録部１３ａ、Ｒ／Ｗ情報記録部１４、移動情報記録部１５ａ、タググループ記録部１６ａ、ジョブデータ記録部１７、タイマ２１、移動情報生成部２２、速度測定部２３を備える。
【０１００】
コマンド受付・返却部２は、アプリケーション１２とタグアクセス制御システム１とのインタフェース部である。コマンド受付・返却部２は、アプリケーション１２から、例えば、ＩＣタグにデータを書き込むコマンド、またはＩＣタグからデータを読み出すコマンドを受け付ける。また、コマンド受付・返却部２は、受け付けたコマンドの処理結果を、アプリケーション１２に返却する。
【０１０１】
分割部５は、コマンド受付・返却部２が受け付けたコマンドを実行するための複数の分割コマンドを生成する。すなわち、コマンドを、より細かい複数のコマンドに分割する。パラメータ記録部１３のパラメータには、コマンドを分割するための情報を示すパラメータが含まれており、分割部５は、このパラメータを用いてコマンドを分割する。コマンド分割のためのパラメータには、例えば、アクセスデータのサイズとアクセスに要する時間との関係を示すパラメータ（例えば、後述するアクセス時間増加率ｈ）等が含まれる。分割部５が生成した分割コマンドは、例えば、ジョブデータとしてジョブデータ記録部１７に記録される。
【０１０２】
検出部４は、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃに、それぞれのアンテナの交信範囲内にあるＩＣタグのＩＤを検出させる。コマンド受付・返却部２が受け付けたコマンドは、例えば、検出部４が検出したＩＤのＩＣタグそれぞれに対して実行される。その場合、検出部４が検出したＩＣタグのＩＤと、分割部５が生成した複数の分割コマンドとを対応付けたデータがジョブデータ記録部１７に記録される。また、検出部４は、例えば、所定数のＩＣタグのＩＤを、タググループ記録部１６ａに記録してもよい。
【０１０３】
パラメータ記録部１３のパラメータには、ＩＣタグのＩＤを検出するための情報を示すパラメータが含まれており、検出部４は、このパラメータを用いてＩＣタグのＩＤを検出する。ＩＣタグのＩＤ検出のためのパラメータには、例えば、検出するタイミングを示すパラメータ（例えば、後述する補正パラメータｔp1）、グループとしてまとめて検出するタグの枚数の示すパラメータ（例えば、後述する期待タグ枚数Ｍ）、検出に要する時間等が含まれる。
【０１０４】
検出部４が、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃのうちいずれか１つに、アンテナの交信範囲になるＩＣタグのＩＤを検出する命令を出すと、命令を受けたＲ／Ｗは、例えば、アンチコリジョンと呼ばれる技術を利用して、Ｒ／Ｗが備えるアンテナの交信範囲にある複数のＩＣタグのＩＤを検出することができる。
【０１０５】
制御部３ａは、検出部４で検出されたＩＤのＩＣタグに対応する複数の分割コマンドを、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃに順次割り当てて実行させる。制御部３ａは、複数の分割コマンドをＲ／Ｗ２６ａ、２６ｂ、２６ｃに分散して順次送信する。Ｒ／Ｗ２６ａ、２６ｂ、２６ｃと、ＩＣタグとの交信は、例えば、ＩＳＯ１５６９３やＩＳＯ１８０００−６に規定された通信方式により行われる。
【０１０６】
速度測定部２３は、センサ３１を用いて、ベルトコンベア４１上を移動する物品３３ａの移動速度を測定し、移動情報記録部１５ａへ記録する。移動情報生成部２２は、速度測定部２３が測定した移動速度と、Ｒ／Ｗ情報記録部１４に記録されたＲ／Ｗ情報とを用いて、ＩＣタグがＡ１、Ａ２、Ａ３それぞれの交信範囲内に存在している時間を表す情報を生成して移動情報記録部１５ａに記録する。移動情報生成部２２が生成する情報の具体例を以下に説明する。
【０１０７】
Ｒ／Ｗ情報は、例えば、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃが有するアンテナの数、各アンテナの位置、アンテナ間の幅、各アンテナの交信範囲の大きさ等を示すデータである。図１３は、Ｒ／Ｗ情報に含まれるデータの例を模式的に示すための図である。図１３においてｘ軸は、アンテナＡ１、Ａ２、Ａ３の配置方向の位置を示す。図１３において、ｒ１、ｒ２、ｒ３で示される点線は、アンテナＡ１、Ａ２、Ａ３の交信範囲をそれぞれ表している。ｘ軸上の位置ｐ１、ｐ２、ｐ３は、アンテナＡ１、Ａ２、Ａ３の位置をそれぞれ表す値とすることができる。また、長さａ１、ａ２、ａ３は、各アンテナＡ１、Ａ２、Ａ３の交信範囲のｘ軸方向における長さを示している。また、長さｄ0はｐ０からｐ１までの距離、長さｄ１はｐ１からｐ２までの距離、長さｄ２はｐ２からｐ３の距離を示している。
【０１０８】
移動情報生成部２２は、図１３に示す位置ｐ１、ｐ２、ｐ３、長さａ１、ａ２、ａ３、ｄ0、ｄ1、ｄ2および速度測定部２３が測定した時刻Ｔ0、速度ｖを用いて、ＩＣタグが前記複数のアンテナの交信範囲内に存在している時間を表す移動情報を生成することができる。移動情報は移動情報記録部１５ａへ記録される。移動情報は、例えば、物品が各アンテナＡ１、Ａ２、Ａ３の交信範囲に入る時刻Ｔ1、Ｔ2、Ｔ3および各アンテナＡ１、Ａ２、Ａ３の交信範囲に存在している時間Ｔa1、Ｔa2、Ｔa3等を表すデータである。
【０１０９】
図１４は、時刻Ｔ1、Ｔ2、Ｔ3および時間Ｔa1、Ｔa2、Ｔa3の例を模式的に表した図である。図１４において横軸は、時間の遷移を示している。移動情報生成部２２は、図１４に示すような時刻Ｔ1、Ｔ2、Ｔ3および時間Ｔa1、Ｔa2、Ｔa3を算出し、これらを移動情報記録部１５ａに記録する。これらの値は、後述の処理で利用される。
【０１１０】
制御部３ａは、移動情報記録部１５ａに記録された移動情報とＲ／Ｗ情報記録部１４に記録されたＲ／Ｗ情報と、タイマ２１による現在時刻とを用いて、ベルトコンベア４１上を移動するＩＣタグの位置と時刻を予測することができる。制御部３ａは、予測された位置および時刻を用いることにより、ＩＣタグの動きに応じた実行タイミングで複数の分割コマンドをＲ／Ｗ２６ａ、２６ｂ、２６ｃに割り当てる。
【０１１１】
しかし、予測された位置および時刻と実際の位置および時刻との間にはずれが生じる。このずれを補正するための補正パラメータｔp1〜ｔp3がパラメータ記録部１３ａに記録されている。制御部３ａは、このパラメータｔp1〜ｔp3により補正された実行タイミングに従って、実際のＩＣタグの動きに応じた適切な実行タイミングで複数の分割コマンドをＲ／Ｗ２６ａ、２６ｂ、２６ｃに割り当てることができる。
【０１１２】
パラメータ記録部１３ａには、このように、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃぞれぞれのデータ通信を制御するためのパラメータが記録されている。例えば、コマンドを分割するための情報を示すパラメータ、検出するための情報を示すパラメータ、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃそれぞれにおける分割コマンドの実行タイミングを示すパラメータ等がパラメータ記録部１３ａに含まれる。
【０１１３】
図１５は、パラメータ記録部１３ａに記録されたパラメータを示すテーブルの例を示す図である。図１５に示す例では、パラメータ名、アンテナＩＤ、値が対応付けられて記録されている。分割コマンドの実行タイミングを示すパラメータの例として、アンテナＡ１〜Ａ３それぞれに実行時間補正パラメータ（ｔp1〜ｔp3）の値が対応付けられて記録されている。また、検出するための情報を示すパラメータの例として、期待タグ枚数Ｍが記録されている。コマンドを分割するための情報を示すパラメータの例として、アクセス時間増加率ｈが記録されている。期待タグ枚数Ｍおよびアクセス時間増加率ｈは、アンテナごとに異なるパラメータではないので、全てのアンテナを示すデータ（ａｌｌ）について対応付けられて記録されている。
【０１１４】
次に、タグアクセス制御システム１ａの動作について説明する。タグアクセス制御システム１も、第１の実施形態と同様に、本運用モードと、パラメータ調整モードとの２通りのモードで動作する。
【０１１５】
（本運用モードにおけるＩＣタグへのデータアクセス処理）
まず、本運用モードにおいて、タグアクセス制御システム１ａが、アプリケーション１２からのコマンドに従って、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃを制御してＩＣタグとデータ送受信を行う処理の例を説明する。図１２は、タグアクセス制御システム１ａが、アプリケーション１２からのコマンドを受け付けて、それに従って処理を行い、処理結果を返却するまでの処理の一例を示すフローチャートである。
【０１１６】
図１２に示す処理では、まず、コマンド受付・返却部２が、アプリケーション１２からのコマンドを受け付ける（ステップＳ１１０１）。コマンドは、例えば、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令であり、図５（ａ）、（ｂ）に示した例と同様の構造である。
【０１１７】
以下、コマンド受付・返却部２がデータをＩＣタグから読み出すコマンドを受け付けた場合を例に挙げて説明する。コマンドを受け付けた後、速度測定部２３は、センサ３１を作動させ、センサ３１が物品３３ａを検出するまで待機する。速度測定部２３は、センサ３１が移動する物品３３ａを検出するとその速度ｖを測定する（ステップＳ１１０２）。
【０１１８】
速度測定部２３は、センサが物品３３ａを検出した時刻Ｔ0をタイマ２１により取得して移動情報記録部１５ａに記録しておく。移動情報生成部２２は、時刻Ｔ0、速度ｖおよびＲ／Ｗ情報記録部１４のＲ／Ｗ情報を用いて、物品３３ａが、アンテナＡ１、Ａ２、Ａ３それぞれの交信範囲内に入る時刻Ｔ1、Ｔ2、Ｔ3および交信範囲内に存在する時間時間Ｔa1、Ｔa2、Ｔa3を算出する。
【０１１９】
制御部３ａは、変数ｋを初期化する（ステップＳ１１０３）。例えば、ｋは１に設定される。このｋ＝１は、例えば、処理対象のアンテナが、１番目のアンテナ（すなわちアンテナＡ１）であることを意味する。
【０１２０】
検出部４は、時刻Ｔk＋ｔpk（＝Ｔ1＋ｔp1）に、１番目のアンテナＡ１を介してタグを検出する（ステップＳ１１０４）。ここで、時刻Ｔ1＋ｔp1は、移動情報記録部１５ａに記録された時刻Ｔ0、速度ｖ、Ｒ／Ｗ情報記録部１４に記録されたｄ0、パラメータ記録部１３ａに記録された補正パラメータｔp1を用いて例えば、下記（式１）で計算される。
【０１２１】
（式１）Ｔ0＋（ｄ0／ｖ）＋ｔp1
【０１２２】
同様にして以下の処理で、Ｔk＋ｔpkは下記（式２）で計算される。
【０１２３】
（式２）Ｔk＋ｔpk＝Ｔk-1＋（ｄk-1／ｖ）＋ｔpk
【０１２４】
検出部４は、例えば、Ｒ／Ｗ２６ａに対して、アンテナＡ１の交信範囲にあるＩＣタグのＩＤを検出するための検出コマンドを、所定の回数（例えば、Ｒ回）だけ発行する。
【０１２５】
また、検出部４は、期待タグ枚数ＭのＩＣタグのＩＤが検出されるまで、繰返し検出コマンドを発行してもよい。期待タグ枚数Ｍは、例えば、１つのコマンドで処理するＩＣタグの数を表す値である。期待タグ枚数Ｍは、上述のとおり予めパラメータ記録部１３ａに記録されている。例えば、物品が４個ずつ梱包されて移動することが予め決まっている場合には、Ｍ＝４と記録される。
【０１２６】
検出部４は、検出したＩＣタグのＩＤと、コマンド受付・返却部２が受け付けたコマンドとで構成されるデータの組をジョブリストに追加する（ステップＳ１１０５）。ジョブリストは、例えば、ＩＣタグのＩＤと、コマンドとで構成されるデータの組が、複数記録されたデータである。コマンドを実行するための処理はジョブと呼ばれるデータで表されるものとする。ジョブリストは、例えば、ジョブデータ記録部１７にジョブデータの一部として記録される。
【０１２７】
図１６（ａ）は、検出部４が検出したＩＣタグのＩＤが記録されたジョブリストの例を示す図である。図１６（ａ）に示すジョブリスト５０ａは、例えば、図５（ａ）に示すコマンドを、コマンド受付・返却部２が受け付けた場合のジョブリストの例である。ジョブリスト５０ａは、ＩＣタグのＩＤを表すデータ部分５１およびコマンドを表すデータ部分５２ａからなるデータのリストで構成されている。コマンドを表すデータ部分５２ａには、図５（ａ）に示すコマンドと同様に、ＲＥＡＤ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とを表すデータが含まれている。図１６（ａ）に示すジョブリストは、検出部４は検出したＩＤ（ｔ1、ｔ2、ｔ3、・・・ｔi）のＩＣタグついて、それぞれ図５（ａ）で示されるコマンドが実行されることを表している。
【０１２８】
検出部４は、ジョブリストにすでに追加されているＩＣタグのＩＤを、再度、検出した場合、そのＩＤはジョブリストに追加しないようにすることが好ましい。これにより、同じＩＤが重複して登録されるのが避けられる。
【０１２９】
分割部５は、コマンド分割処理を行う（ステップＳ１１０６）。分割部５は、分割処理において、例えば、ステップＳ１１０５で、ジョブリストに追加されたＩＣタグのＩＣに対応するコマンドを、さらに複数の分割コマンドに分割して新たなジョブリストを生成する。
【０１３０】
図１６（ｂ）は、分割部５が、図１６（ａ）に示すジョブリスト５０ａに含まれるコマンドを分割することによって、新たに生成したジョブリスト５０ｂの例を示す図である。分割部５は、例えば、ＩＣタグのＩＤごとのコマンドを複数の分割コマンドに分割する。例えば、分割前のＩＣタグのＩＤ＝ｔ1のコマンドは、ＩＣタグのメモリの先頭（０）から１０バイト分のデータを読み込む命令を示している。分割部５は、このコマンドを例えば、ＩＣタグのメモリの先頭（０）から５バイト分のデータを読み込む分割コマンドＪ1と、ＩＣタグのメモリの先頭から５バイト目から５バイト分のデータを読み込む分割コマンドＪ2とに分割することができる。
【０１３１】
一例として、分割前のコマンドが、ＩＣタグのメモリの先頭よりｆバイト目からｂバイト分のデータを読み込む命令である場合（オフセット＝ｆ、バイト数＝ｂ）に、このコマンドを、ｍ個の分割コマンドＪ1、Ｊ2、Ｊ3、・・・Ｊmに分割する処理について説明する。ｂ／ｍを下回らない最小の整数をｓとすると、分割後の分割コマンドＪ1、Ｊ2、Ｊ3、・・・Ｊmを以下のように表すことができる。
【０１３２】
Ｊ1：オフセット＝ｆ、バイト数＝ｓ
Ｊ2：オフセット＝ｆ＋ｓ、バイト数＝ｓ
Ｊ3：オフセット＝ｆ＋２ｓ、バイト数＝ｓ
・・・
Ｊm：オフセット＝ｆ＋ｍｓ、バイト数＝ｂ−（ｍ−１）ｓ
【０１３３】
このように、分割部５は、コマンドを示すＩＣタグから読み込むべきデータを、複数のデータに分割して、分割したそれぞれのデータを読み込む複数の分割コマンドを生成することができる。同様にして、ＩＣタグにデータを書き込むコマンドを、分割されたデータを書き込む複数の分割コマンドに分割することもできる。
【０１３４】
ここで、分割数ｍは、例えば、分割前のコマンドによって読み込まれるべきデータの量およびＩＣタグと複数のＲ／Ｗ間の交信可能時間等に基づいて決められることが好ましい。分割部５が分割数ｍを計算して分割コマンドを生成する処理の詳細について後述する。
【０１３５】
制御部３ａは、変数ｋに１を足す（ステップＳ１１０７）。制御部３は、時刻Ｔk＋ｔpk（例えば、ｋ＝２の場合Ｔ2＝Ｔ1＋｛（ｄ1）／ｖ｝＋ｔp2）において、分割部５によって生成された分割コマンドをｋ番目のＲ／Ｗ（例えばｋ＝２の場合はＲ／Ｗ２６ｂ）に、アンテナＡｋ（例えばｋ＝２の場合はアンテナＡ２）を介して実行させる（ステップＳ１１０８）。例えば、制御部３ａは、図１６（ｂ）に示すジョブリスト５０ｂのＩＣタグのＩＤ＝ｔ1の分割コマンドＪ1、Ｊ2を１つずつ順番にＲ／Ｗに対して送信し、それぞれの分割コマンドＪ1、Ｊ2について処理結果を取得する。同様に、ＩＣタグのＩＤ＝ｔ2、ｔ3、・・・それぞれに含まれる分割コマンドについても順番に１つずつ分割コマンドを送信し、分割コマンドごとに処理結果を取得する。
【０１３６】
制御部３ａは、例えば、分割コマンドの処理結果が、所定回数連続で失敗である場合に、アンテナＡｋを介した分割コマンド実行処理（ステップＳ１１０８）を終了してもよい。これにより、アンテナＡｋの交信範囲にＩＣタグが存在していて、分割コマンドが失敗しない限り、分割コマンドの実行処理が続けられる。
【０１３７】
なお、制御部３ａは、一定時間経過後に分割コマンド実行処理（ステップＳ１１０８）を終了するようにしてもよい。また、ジョブリストの分割コマンドが全て実行された場合も、分割コマンド実行処理（ステップＳ１１０８）は終了する。
【０１３８】
制御部３ａは、アンテナＡｋを介した分割コマンド実行処理（ステップＳ１１０８）において処理結果が成功であった分割コマンドを、ジョブリストから削除する（ステップＳ１１０９）。これにより、ジョブリストには、未実行の分割コマンドか、実行に失敗した分割コマンドだけが残る。結果として、実行する必要のある分割コマンドが選択されてジョブリストに残ることになる。
【０１３９】
図１６（ｃ）は、図１６（ｂ）で示したジョブリスト５０ｂから成功した分割コマンドを削除したジョブリストの例である。図１６（ｃ）に示すジョブリスト５０ｃでは、ジョブリスト５０ｂに含まれていた分割コマンドのうち、ＩＣタグのＩＤ＝ｔ1の分割コマンドと、ＩＣタグのＩＤ＝ｔ2の分割コマンドＪ1、Ｊ2が削除されている。
【０１４０】
また、分割コマンドの処理結果は、ジョブデータ記録部１７に記録されることが好ましい。図１７は、分割コマンドの処理結果を表すデータの例を示す図である。図１７に示す例では、ＩＣタグのＩＤごとに、分割数、完了、分割コマンドを表すデータがそれぞれ記録されている。制御部３ａは、例えば、分割コマンドの処理結果が全て成功であるＩＣタグのＩＤの完了を表すデータを“１”に更新する。これにより、ＩＣタグごとに処理が完了したか否かを示す情報が記録される。
【０１４１】
また、複数のＩＣタグをまとめたタググループごとの処理結果を示すデータがタググループ記録部１６ａに記録されてもよい。図１８は、タググループごとの処理結果を表すデータの例を示す図である。図１８に示す例では、タググループＩＤごとに、完了を表すデータと、タググループＩＤのタググループに含まれるＩＣタグ（メンバーＩＣタグ）のＩＤを表すデータとが記録されている。これにより、タググループ単位ごとに処理が完了したか否かを示す情報が記録される。制御部３ａは、例えば、ＩＣタグごとの処理結果を基に、タググループごとの処理結果を更新することができる。
【０１４２】
例えば、コマンド受付・返却部２がアプリケーション１２から受け付けた１つのコマンドで処理するＩＣタグの集合を、１つのタググループとすることが好ましい。これにより、タググループごとの処理結果は、コマンドごとの処理結果を表すことになる。
【０１４３】
制御部３ａは、変数ｋが、タグアクセス制御システム１ａが制御する全アンテナ数＋１（ここでは３＋１＝４）に達しているか否かを判断する（ステップＳ１１１０）。
【０１４４】
例えばｋ＝２の場合、ｋは、全アンテナ数＋１の４に達していないので、（ステップＳ１１１０でＮｏ）、制御部３ａは、再び、ステップＳ１１０７の処理を行う。ステップＳ１１０７では、ｋがインクリメントされる。その後、制御部３ａは、ステップＳ１１０８、Ｓ１１０９の処理を繰り返す。この時、ジョブリストは、例えば、図１６（ｃ）に示すように、ｋ−１番目のアンテナＡ（ｋ−１）を介して実行された分割コマンドが削除された状態である。このようにして、ｋが全アンテナ数＋１に達するまで、上記の処理が繰り返される。
【０１４５】
ｋが全アンテナ数＋１に達した場合（ステップＳ１１１０でＹｅｓの場合）、コマンド受付・返却部２が、各ＩＣタグにおける分割コマンドの処理結果に基づいて、コマンドの処理結果を生成し、アプリケーション１２へ返却する（ステップＳ１１１）。コマンド受付・返却部２は、タググループがコマンドごとに作成された場合には、図１８に示すようなタググループごとの処理結果を、コマンドの処理結果としてアプリケーション１２へ返却することができる。
【０１４６】
（分割部５が、コマンドまたは分割コマンドを分割する処理の詳細な例）
ここで、ステップＳ１１０６のコマンド分割処理の詳細な例について説明する。図１９は、分割部５が、ジョブリストのコマンドを分割する処理の詳細な例を示すフローチャートである。図１９に示すように、分割部５は、まず、ジョブリスト内に含まれる分割コマンドのうち、扱うデータのバイト数が最大である分割コマンドのバイト数Ｂを取得する（ステップＳ２１０１）。
【０１４７】
また、分割部５は、ジョブリスト内に含まれる分割コマンドの総数Ｊを求める（ステップＳ２１０２）。さらに分割部５は、１つのアンテナにおいて、同一のＩＣタグと交信可能な時間Ｔａを求める（ステップＳ２１０３）。Ｔａは、例えば、アンテナの交信範囲の長さａと、物品の移動速度ｖを用いて、Ｔａ＝ａ／ｖにより、求められる。
【０１４８】
分割部５は、バイト数Ｂのデータを扱う分割コマンドの実行に要する時間の平均値Ｔｂを求める（ステップＳ２１０４）。Ｔｂは、例えば、予めパラメータ記録部１３ａに記録されたアクセス時間増加率ｈを用いて、Ｔｂ＝Ｂ×ｈで計算することができる。横軸にアクセスするデータの量、縦軸にアクセスに要する時間をとったグラフにおいて、データ量とそのデータ量のデータへのアクセスに要する時間との関係は直線で表される。この直線の傾きがアクセス時間増加率ｈである。図１５に示すパラメータ記録部１３ａのデータの例では、アクセス時間増加率ｈの値は「１．２（μｓ／ｂｙｔｅ）」である。この場合、例えば、１０バイトのデータへのアクセスに要する時間は１２０μ秒になる。
【０１４９】
このアクセス時間増加率ｈの値は、アンテナＡ１〜Ａ３周辺にある物や人等により影響を受ける。そのため、実際のタグアクセス制御システム１ａを動作させてみないと、適切なアクセス時間増加率ｈの値を得ることはできない。そこで、タグアクセス制御システム１ａは、パラメータ調整モードで動作することにより、パラメータ調整部７ａが、アクセス時間増加率ｈを適切な値に調整する。パラメータを調整する処理の例は後述する。
【０１５０】
次に、分割部５は、分割数ｄｖ0＝１にして、ｄｖ0を初期化する（ステップＳ２１０５）。
【０１５１】
分割部５は、１つのアンテナを介して実行できる分割コマンドの数ｒを求める（ステップＳ２１０６）。例えば、分割部５は、１アンテナを介して同一のＩＣタグと交信できる交信可能時間Ｔａ、分割数ｄｖ0、バイト数Ｂの分割コマンドの実行に要する平均時間Ｔｂを用いて、１つのアンテナを介して実行できる分割コマンドの数ｒを下記（式３）により求めることができる。
【０１５２】
（式３）
ｒ＝ｆｌｏｏｒ（Ｔａ×ｄｖ0／Ｔｂ）
【０１５３】
上記（式３）で、ｆｌｏｏｒ（Ｘ）は、Ｘを超えない最大の整数を表す。
【０１５４】
分割部５は、ｒ×残りのアンテナ数がｄｖ0×Ｊを超えるか否かを判断する（ステップＳ２１０７）。ステップＳ２１０７でＮｏの場合、ｄｖ0に１を加えて（ステップＳ２１０８）、再度、ｒを計算し（ステップＳ２１０６）、ｒ×残りのアンテナ数が、ｄｖ0×Ｊを超えるか否かを判断する（ステップＳ２１０７）。ｒ×残りのアンテナ数がｄｖ0×Ｊを超える（ステップＳ２１０７でＹｅｓ）まで、ｄｖ0に１を加えてｒを計算する処理を繰り返す。
【０１５５】
ｒ×残りのアンテナ数がｄｖ0×Ｊを超える（ステップＳ２１０７でＹｅｓ）と、分割部５は、ループカウンタｎを初期化（ｎ：＝０）して（ステップＳ２１０９）、ｎ番目のＩＤのコマンドをｄｖ0に分割する（ステップＳ２１１０）。分割部５は、ジョブリスト中にある全てのタグＩＤの分割コマンドについてステップＳ２１１０の分割処理を繰り返す（ステップＳ２１１１、Ｓ２１１２）。以上、図１９に示した処理により、ジョブリスト内のコマンドが分割される。
【０１５６】
（パラメータ調整モードにおけるパラメータ調整処理）
次に、タグアクセス制御システム１ａのパラメータ調整モードにおける動作の例を説明する。図２０は、パラメータ調整部７ａが、パラメータ調整モードにおいて、パラメータを調整して適切な値を求める処理の一例を示すフローチャートである。ここでは、一例として、図１５に示す補正パラメータｔp1、ｔp2、ｔp3を調整する場合について説明するが、パラメータ調整部７ａで調整されるパラメータはこれらに限られない。
【０１５７】
図２０に示す処理は、図６に示した処理と大まかな流れはほぼ同じである。すなわち、パラメータ調整部７ａは、設定パラメータと、候補パラメータとのそれぞれについて、実行結果を収集して比較し、候補パラメータで実行結果が改善されると判断された場合に、設定パラメータを候補パラメータに変更する。この処理を複数回繰り返すことで、設定パラメータが適切な値に近づいてゆく。
【０１５８】
パラメータ調整モードが始まると、制御部３ａはパラメータ記録部１３ａに現在設定されているパラメータに基づいてコマンドを生成し、そのコマンドをＲ／Ｗ２６に実行させた場合の実行結果を示すデータを収集する（ステップＳ１０）。制御部３ａは、同じコマンドの実行を複数回繰返し、複数の実行結果を得る（ステップＳ２０）。
【０１５９】
例えば、時刻Ｔ1＋ｔp1に、検出部４がＲ／Ｗ２６ａにアンテナＡ１の交信範囲内にあるＩＣタグのＩＤを検出する分割コマンドを実行させる。その後、検出部４は、５０ミリ秒間隔で所定の回数だけ同じコマンドをＲ／Ｗ２６ａに実行させる。検出部４は、各コマンドについて、ＩＤの検出に成功したＩＣタグの枚数を実行結果として結果蓄積部７３ａに記録する。その後の時刻Ｔ2＋ｔp2に、制御部３ａは、Ｒ／Ｗ２６ｂにアンテナＡ２の交信範囲内にあるＩＣタグのデータを読み込む分割コマンドを実行させた後、５０ミリ秒間隔で所定の回数だけ同じコマンドをＲ／Ｗ２６ｂに実行させる。同様に、その後の時刻Ｔ3＋ｔp3から、制御部３ａは、アンテナＡ３の交信範囲内にあるＩＣタグのデータを読み込む一連の分割コマンドをＲ／Ｗ２６ｃに実行させる。制御部３は、各分割コマンドについて、データの読み込みに成功したＩＣタグの枚数を実行結果として結果蓄積部７３ａに記録する。このように、物品がアンテナＡ１、Ａ２、Ａ３の交信範囲を通過している間に実行される一連のコマンドを１回のサイクルとする。制御部３ａはこのサイクルを複数回繰り返すことで、複数サイクル分の設定パラメータについての実行結果が結果蓄積部７３ａに記録される。設定パラメータと実行結果は対応付けられて記録される。
【０１６０】
図２１（ａ）は、実行結果を示すデータの例を示す図である。図２１（ａ）に示す実行結果のデータには、実行結果がどのような値のパラメータについての実行結果であるかを識別するためのＩＤ（＝０００１）が割り当てられている。
【０１６１】
それぞれのＩＤには、パラメータの値が対応付けられて記録されている。図２１（ｂ）は、ＩＤと実行結果が対応付けて記録されたテーブルの例である。図２１（ｂ）では、ＩＤそれぞれにパラメータｔp1、ｔp2、ｔp3の値が対応付けられて記録されている。
【０１６２】
図２１（ａ）に示す実行結果のデータには、ＩＤ（＝０００１）が対応している。これは、図２１（ｂ）のＩＤ＝０００１に対応するパラメータの値、すなわちｔp1＝３０、ｔp2＝２０、ｔp3＝３０の場合のコマンド実行結果であることを示している。
【０１６３】
図２１（ａ）に示す例では、分割コマンドを実行した時刻と、分割コマンド実行の結果とが対応付けられて、１回目から４回目のサイクルについて記録されている。分割コマンド実行時刻は、アンテナＡ１、Ａ２、Ａ３それぞれのＲ／Ｗ２６ａ、２６ｂ、２６ｃが、分割コマンド実行を開始した時刻Ｔk＋ｔpk＝Ｔk-1＋（ｄk-1／ｖ）＋ｔpkを時刻「０」として、そこからの経過時間（単位はミリ秒）で、アンテナＡ１、Ａ２、Ａ３ごとに表されている。アンテナＡ１における実行結果は、検出されたＩＣタグの枚数で表されている。アンテナＡ２、Ａ３における実行結果は、データ読み込みが成功したＩＣタグの枚数で表されている。
【０１６４】
図２１（ａ）に示す実行結果のように、例えば、サイクル４回分のアンテナＡ１、Ａ２、Ａ３についての実行結果が結果蓄積部７３に記録されると、パラメータ変更部７１ａは結果蓄積部７３に記録された実行結果を用いて、アンテナＡ１、Ａ２、Ａ３それぞれについての候補パラメータを算出する（ステップＳ３０）。パラメータ変更部７１ａは、例えば、結果蓄積部７３ａに記録された実行結果を基に、実行結果が最も良かった実行タイミングをアンテナＡ１、Ａ２、Ａ３それぞれについて抽出し、算出される候補パラメータが、その実行タイミング付近を表す値となる確率が高くなるようにアンテナＡ１、Ａ２、Ａ３それぞれについて候補パラメータを算出する。候補パラメータ算出処理の詳細な例は図９に示す処理と同様である。算出された候補パラメータは、結果蓄積部７３ａに記録される。
【０１６５】
候補パラメータは、例えば、図２１（ｂ）に示すテーブルに追加される。ここでは一例として、図２１（ｂ）に示すテーブルにＩＤ（＝０００２）と対応付けられて記録されるパラメータｔp1＝２０、ｔp2＝３０、ｔp3＝４０が算出された候補パラメータとする。
【０１６６】
制御部３ａは、パラメータ変更部７１ａが算出した候補パラメータ（ｔp1＝２０、ｔp2＝３０、ｔp3＝４０）に基づいた分割コマンドをアンテナＡ１、Ａ２、Ａ３に対応するＲ／Ｗ２６ａ、２６ｂ、２６ｃそれぞれに複数回実行させ、その実行結果を表すデータを収集する（ステップＳ４０、５０）。実行結果を示すデータは、結果蓄積部７３ａに記録される。ステップＳ４０、５０の処理は、上記ステップＳ１０、２０の処理と同様に行われる。ステップＳ４０、５０で収集された実行結果も図２１（ａ）に示すデータと同様の構成で記録される。その際、実行結果のデータは、ステップＳ３０で算出された候補パラメータのＩＤ（＝０００２）に対応付けられて記録される。
【０１６７】
候補パラメータに基づく分割コマンド実行の結果が記録されると、算出部７２ａは、変数ｋを初期化し（ステップＳ６１）、候補パラメータに基づく分割コマンド実行の結果と、設定パラメータに基づく分割コマンド実行結果を、ｋ番目のアンテナＡｋについて比較する（ステップＳ６２）。比較処理の詳細は、図８に示した処理と同様である。
【０１６８】
ｋ番目のアンテナＡｋについて改善ありを示すデータが得られた場合（ステップＳ７０でＹＥＳの場合）、パラメータ変更部７１ａは、アンテナＡｋについての候補パラメータをアンテナＡｋについての設定パラメータｔpkとしてパラメータ記録部１３ａに記録する（ステップＳ８０）。改善なしを示すデータが得られた場合（ステップＳ７０でＮＯの場合）、パラメータ記録部１３ａに記録された設定パラメータは変更されない。
【０１６９】
その後、算出部７２は、ｋをインクリメントし、ｋが全アンテナ数＋１（３＋１＝４）に達したか否かを判断する（ステップＳ８２）。これにより、全アンテナＡ１〜Ａ３について、比較処理（ステップＳ６２）が行われる。
【０１７０】
ｋが全アンテナ数＋１に達した場合（ステップＳ８２でＹＥＳの場合）、算出部７２ａは、パラメータ調整を終了するか否かの判断を行う（ステップＳ９０）。パラメータ調整終了（ステップＳ９０でＹＥＳ）と判断されるまで、ステップＳ３０〜８０の処理が繰り返される。この繰り返し処理により、アンテナＡ１〜Ａ３についてのパラメータｔp1〜ｔp3が適切な値に調整される。これにより制御部３ａは、適切なタイミングでＲ／Ｗ２６ａ〜２６ｃそれぞれに分割コマンドを実行させることができる。
【０１７１】
本発明は、工場などの生産現場や工場・倉庫・卸・小売間での物流の現場において、工程管理や入出庫管理の効率化を目的として、例えば、部材・製品・ケースなどの物品へのＩＣタグ適用が広まりつつある生産・物流分野等で利用され得る。
【０１７２】
以上の実施の形態に関し、更に以下の付記を開示する。
【０１７３】
（付記１）
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、
前記データ通信を制御するためのパラメータを記録するパラメータ記録部と、
前記パラメータに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを送信し、前記コマンドの実行結果を前記リーダライタから受信することで、前記ＩＣタグと前記リーダライタとのデータ通信を制御する制御部と、
前記パラメータを適切な値に調整するパラメータ調整部とを備え、
前記パラメータ調整部は、前記パラメータの変更を複数回繰り返すパラメータ変更部と、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が送信した複数のコマンドの実行結果を、それぞれコマンドの基となったパラメータと対応付けて記録する結果蓄積部と、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する算出部とを含む、タグアクセス制御システム。
【０１７４】
（付記２）
前記算出部は、前記結果蓄積部に蓄積されたパラメータの中から、コマンドの実行結果が成功である確率が最も高いパラメータを選択することで、前記適切なパラメータを算出する、付記１に記載のタグアクセス制御システム。
【０１７５】
（付記３）
前記パラメータ変更部は、前記結果蓄積部に既に蓄積されているパラメータとコマンドの実行結果に基づいて、実行結果の成功する確率が高いパラメータを算出し、該算出したパラメータを変更後のパラメータとする、付記１に記載のタグアクセス制御システム。
【０１７６】
（付記４）
前記リーダライタは複数設けられ、複数のリーダライタがそれぞれ有するアンテナは、前記物品の移動経路に沿って設けられており、
ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、
受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを更に備え、
前記パラメータ記録部は、前記複数のリーダライタぞれぞれのデータ通信を制御するためのパラメータを記録し、
前記制御部は、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部を含み、複数の分割コマンドを、前記パラメータに従って、前記複数のリーダライタに順次送信し、前記複数の分割コマンドそれぞれの実行結果を前記複数のリーダライタそれぞれから受信することで、前記複数のリーダライタと前記ＩＣタグとのデータ通信を制御し、
前記パラメータ調整部において、前記パラメータ変更部は、前記複数のリーダライタについてのパラメータの変更を複数回繰り返し、前記結果蓄積部は、前記パラメータ変更部によって前記複数回変更されるパラメータそれぞれに基づいて前記制御部が複数のリーダライタに送信した複数の分割コマンドの実行結果を、それぞれ分割コマンドの基となったパラメータと対応付けて記録し、前記算出部は、前記結果蓄積部に記録されたパラメータと分割コマンドの実行結果に基づいて、前記複数のリーダライタについての適切なパラメータを算出する、付記１に記載のタグアクセス制御システム。
【０１７７】
（付記５）
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、
前記コンピュータが備えるパラメータ変更部が、前記コンピュータが備えるパラメータ記録部に記録された前記データ通信を制御するためのパラメータを複数回繰り返して変更する工程と、
前記コンピュータが備える制御部が、前記変更部によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数送信し、複数のコマンドの実行結果を受信する工程と、
前記制御部が、前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する工程と、
前記コンピュータが備える算出部が、前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する工程とを含む、タグアクセス制御方法。
【０１７８】
（付記６）
アンテナを有するリーダライタと、前記アンテナの交信範囲内を移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、
前記コンピュータが備えるパラメータ記録部に記録された、前記データ通信を制御するためのパラメータを複数回繰り返して変更するパラメータ変更処理と、
前記パラメータ変更処理によって前記複数回変更されるパラメータそれぞれに基づいて、前記リーダライタに対して前記ＩＣタグへのアクセスを実行させるコマンドを複数生成し、前記リーダライタに送信し、複数のコマンドの実行結果を受信する処理と、
前記複数の実行結果をそれぞれコマンドの基となったパラメータと対応付けて前記コンピュータが備える結果蓄積部に記録する処理と、
前記結果蓄積部に蓄積されたパラメータとコマンドの実行結果に基づいて、適切なパラメータを算出する処理とをコンピュータに実行させる、タグアクセス制御プログラム。
【産業上の利用可能性】
【０１７９】
本発明は、リーダライタを制御するための適切なパラメータを設定することができるタグアクセス制御システムとして利用可能である。
【図面の簡単な説明】
【０１８０】
【図１】第１の実施形態におけるタグアクセス制御システムを含むシステム全体の構成を示す機能ブロック図
【図２】タグアクセス制御システム１がコマンドをＲ／Ｗ２６に実行させる処理の一例を示すフローチャート
【図３】物品の移動経路、センサ、アンテナの位置関係の例を模式的に示す図
【図４】パラメータ記録部１３に記録されたデータの例を示す図
【図５】（ａ）は、ＩＣタグからデータを読み出す命令を示すコマンドの例である。（ｂ）は、ＩＣタグにデータを書き込む命令を示すコマンドの例である。
【図６】パラメータを調整して適切な値を求める処理の一例を示すフローチャート
【図７】（ａ）は、実行結果を示すデータの例を示す図である。（ｂ）は、ＩＤと実行結果が対応付けて記録されたテーブルの例である。
【図８】実行結果を比較する処理の例を示すフローチャート
【図９】候補パラメータを算出する処理の例を示すフローチャート
【図１０】平均がｔｓ、標準偏差ｓの正規分布を表すグラフ
【図１１】第２の実施形態におけるタグアクセス制御システムを含むシステム全体の構成を示す機能ブロック図
【図１２】タグアクセス制御システム１ａが、コマンドを受け付けて処理を行い、処理結果を返却するまでの処理の一例を示すフローチャート
【図１３】Ｒ／Ｗ情報に含まれるデータの例を模式的に示すための図
【図１４】時刻Ｔ1、Ｔ2、Ｔ3および時間Ｔa1、Ｔa2、Ｔa3の例を模式的に表した図
【図１５】パラメータ記録部１３ａに記録されたパラメータのテーブルの例を示す図
【図１６】（ａ）は、ジョブリストの例を示す図である。（ｂ）は、コマンド分割処理により新たに生成されたジョブリストの例を示す図である。（ｃ）は、成功した分割コマンドを削除したジョブリストの例である。
【図１７】分割コマンドの処理結果を表すデータの例を示す図
【図１８】タググループごとの処理結果を表すデータの例を示す図
【図１９】ジョブリストのコマンドを分割する処理の詳細な例を示すフローチャート
【図２０】パラメータを調整して適切な値を求める処理の一例を示すフローチャート
【図２１】（ａ）は、実行結果を示すデータの例を示す図である。（ｂ）は、ＩＤと実行結果が対応付けて記録されたテーブルの例である。
【符号の説明】
【０１８１】
１、１ａ  タグアクセス制御システム
２      コマンド受付・返却部
３、３ａ  制御部
４      検出部
５      分割部
７、７ａ  パラメータ調整部
１１、１１ａ    コンピュータ
１２    アプリケーション
１３、１３ａ    パラメータ記録部
１４    Ｒ／Ｗ情報記録部
１５、１５ａ  移動情報記録部
１６、１６ａ  タググループ記録部
１７    ジョブデータ記録部
１８    処理データ記録部
２１    タイマ
２２    移動情報生成部
２３    速度測定部
２４、２５、２５ａ、２５ｂ、２５ｃ    デバイスドライバ
３１    センサ
３２    アンテナ
３３ａ  物品
３４ａ  タグ
３９    ユーザインタフェース
４１    ベルトコンベア
５０ａ  ジョブリスト
５０ｂ  ジョブリスト
５０ｃ  ジョブリスト
７１、７１ａ  パラメータ変更部
７２、７２ａ算出部
７３、７３ａ  結果蓄積部
【図１】
2007257003.tif 000003
【図２】
2007257003.tif 000004
【図３】
2007257003.tif 000005
【図４】
2007257003.tif 000006
【図５】
2007257003.tif 000007
【図６】
2007257003.tif 000008
【図７】
2007257003.tif 000009
【図８】
2007257003.tif 000010
【図９】
2007257003.tif 000011
【図１０】
2007257003.tif 000012
【図１１】
2007257003.tif 000013
【図１２】
2007257003.tif 000014
【図１３】
2007257003.tif 000015
【図１４】
2007257003.tif 000016
【図１５】
2007257003.tif 000017
【図１６】
2007257003.tif 000018
【図１７】
2007257003.tif 000019
【図１８】
2007257003.tif 000020
【図１９】
2007257003.tif 000021
【図２０】
2007257003.tif 000022
【図２１】
2007257003.tif 000023