(57)【要約】【課題】物品の移動速度を低下させずに、複数のＩＣタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システムを提供する。【解決手段】複数のアンテナをそれぞれに有する複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動するＩＣタグとのデータ通信を制御するタグアクセス制御システムは、移動情報とリーダライタ情報とを記憶する記録部６と、コマンドを受け付けるコマンド受付部２と、コマンドから複数の分割コマンドを生成する分割部５と、複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグを検出する検出部４と、複数の分割コマンドを、移動情報１５とリーダライタ情報１４に応じて、複数のリーダライタに順次割り当てるジョブ制御部３と、コマンドに対する処理結果を返却する返却部２とを備える。【選択図】図１
2007156570.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、
前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、
ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、
前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、
前記リーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出部と、
前記検出部で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、
前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備えるタグアクセス制御システム。
【請求項２】
前記分割部は、前記コマンドによって示されるＩＣタグに書き込むべきデータまたはＩＣタグから読み込むべきデータのサイズを複数の分割データサイズに分割し、各分割データサイズについて、ＩＣタグから読み込む分割コマンド、またはＩＣタグへ書き込む分割コマンドを生成することによって、前記複数の分割コマンドを生成する請求項１に記載のタグアクセス制御システム。
【請求項３】
前記ジョブ制御部は、リーダライタのアンテナの交信範囲内にあるＩＣタグの識別子を予め決められた数だけタググループとして検出し、タググループに含まれるそれぞれの識別子を前記ジョブリストと対応付けて前記記録部へ記録し、前記タググループに含まれる識別子のＩＣタグに対応する前記ジョブリストが示す複数の分割コマンドを、前記複数のリーダライタに順次割り当てる請求項１に記載のタグアクセス制御システム。
【請求項４】
前記ジョブ制御部は、前記物品の移動経路において先行するアンテナのリーダライタにおける分割コマンドの実行結果に基づいて、実行する分割コマンドを選択し、前記リーダライタ以外のリーダライタに割り当てる請求項１に記載のタグアクセス制御システム。
【請求項５】
前記分割部は、前記物品の移動経路において先行するリーダライタによって実行され成功した分割コマンドを前記ジョブリストから除いて残った分割コマンドが示す、ＩＣタグから読み込むべきデータまたはＩＣタグに書き込むべきデータのサイズを、複数の分割データサイズに分割し、各分割データサイズについて、ＩＣタグから読み込む分割コマンド、またはＩＣタグへ書き込む分割コマンドを生成する請求項２に記載のタグアクセス制御システム。
【請求項６】
前記物品の移動速度を測定する速度測定部と、
前記移動速度を用いて、ＩＣタグが前記複数のアンテナの交信範囲内に存在している時間を表す情報を生成して前記移動情報として前記記録部に記録する移動情報生成部とをさらに備える請求項１に記載のタグアクセス制御システム。
【請求項７】
ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、
前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、
前記コンピュータが備えるコマンド受付部が、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、
前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、
前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる工程と、
前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、
前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含むタグアクセス制御方法。
【請求項８】
ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、
前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、
ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、
前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、
前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出処理と、
前記検出処理で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、
前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させるタグアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動する物品に設けられたＩＣタグと、複数のリーダライタとのデータ通信を制御するタグアクセス制御システム、タグアクセス制御方法およびタグアクセス制御プログラムに関する。
【背景技術】
【０００２】
近年、ＩＣタグを使って物品を認識するＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）技術が注目されている。例えば、工場や物流拠点では、ベルトコンベア、フォークリフト、台車等により部品や製品等の物品が移送される。このような物品にＩＣタグを付することによって、移送される物品の識別、管理等を行うことができる。特に、パッシブ型のＩＣタグは電池を必要とせず、小型化・低価格化できるとされ、大量の物品の識別・管理に向くと期待されている。
【０００３】
パッシブ型のＩＣタグは、アンテナを備えたリーダライタと無線によりデータの授受を行う。リーダライタが、移送される物品に貼り付けたＩＣタグへのデータ読み書きをする場合、移動中のＩＣタグへのアクセスが求められることがある。しかし、移動するＩＣタグとのデータ通信において、ＩＣタグの移動速度をある一定値以上にすると読み書きに失敗する確率が急速に増大する。そのため、回転率を犠牲にしてもアンテナの通信可能範囲内で物品の移動を一時的に停止させたり、十分に遅い速度で物品を移動させたりする必要があった。このような状況において、タグを貼り付けた物品の移動速度の低下を不要にして全体効率を向上させる技術が必要とされる。
【０００４】
従来、少しでも早くデータの読み書きを行うために、ＩＣタグのデータ通信時間や読み書き処理時間を高速化するためのリーダライタ（Ｒ／Ｗ）やアンテナの技術が開発されてきた。しかし、単独のリーダライタやアンテナでの処理能力には限界がある。
【０００５】
そのため、複数のリーダライタによって、記録速度を保ちながらも書き込み失敗率を少なくするラベルプリンタが開示されている（例えば、特許文献１参照）。このラベルプリンタでは、一つのリーダライタによるＩＣタグへのデータ書込みが失敗した場合に、他のリーダライタによって再度書き込みが行われる。また、書き込むデータが一定以上の大きさを有する場合は、分割されたデータが、複数のリーダライタによってＩＣタグに書き込まれる。
【特許文献１】特開２００４−８２４３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の発明は、同時に最大１枚のタグへのアクセスを前提としている。これに対して、例えば、生産・物流現場においては、複数のＩＣタグが同時に１つのアンテナの交信範囲内に入るような運用が一般的である。そこで、一定の空間領域を占めて移動する複数のＩＣタグのグループを扱う技術が必要となる。
【０００７】
そこで、本発明は、物品の移動速度を低下させずに、複数のＩＣタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかるタグアクセス制御システムは、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出部と、前記検出部で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すリーダライタの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備える。
【０００９】
本発明にかかるタグアクセス制御方法は、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、前記コンピュータが備えるコマンド受付部が、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる工程と、前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すリーダライタの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含む。
【００１０】
本発明にかかるタグアクセス制御プログラムは、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出処理と、前記検出処理で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、物品の移動速度を低下させずに、複数のＩＣタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１２】
本発明にかかるタグアクセス制御システムは、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御するタグアクセス制御システムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出部と、前記検出部で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備える。
【００１３】
前記ジョブ制御部は、前記分割部が生成した複数の分割コマンドを、前記複数のリーダライタに割り当てるので、１つのコマンドを、複数のリーダライタに分散して実行させることができる。前記複数のリーダライタがそれぞれ有するアンテナは、ＩＣタグの移動経路に沿って配置されている。そのため、ＩＣタグが設けられた物品が、複数のアンテナの交信範囲を順に移動する際に、ＩＣタグに対するコマンドを実行するための分割コマンドがそれぞれのリーダライタで分散して実行される。前記ジョブ制御部は、ＩＣタグの移動状況および前記リーダライタの配置に応じて分割コマンドが割り当てられるので、適切なタイミングで、適切なリーダライタに分割コマンドを割り当てることができる。その結果、物品の移動速度を低下させずに、コマンドの成功率を向上させることができる。
【００１４】
また、前記検出部が検出したＩＣタグの識別子は、前記複数の分割コマンドと対応付けられてジョブリストに記録されるので、複数のＩＣタグの識別子が検出された場合でも、それぞれのＩＣタグについて分割コマンドが記録される。前記ジョブ制御部は、前記検出部が検出したＩＣタグの識別子に対応する分割コマンドを、前記複数のリーダライタに割り当てることができる。そのため、複数のＩＣタグに対する処理を、１つのアンテナを介した交信だけで完了させる必要がなく、複数のリーダライタに割り当てて、複数のアンテナによる交信で実行することができる。そのため、複数のＩＣタグに対する処理成功率が向上する。
【００１５】
また、ＩＣタグを検出する処理と、ＩＣタグに対してデータを読み書きする処理とは、前記検出部と、前記ジョブ制御部とが、それぞれリーダライタに実行させるので、１つのリーダライタで検出処理およびデータ読み書きする処理を完了させる必要がない。そのため、複数のリーダライタにこれらの処理を分散させることができるので、コマンドの成功率が向上する。
【００１６】
本発明にかかるタグアクセス制御システムにおいて、前記分割部は、前記コマンドによって示されるＩＣタグに書き込むべきデータまたはＩＣタグから読み込むべきデータのサイズを複数の分割データサイズに分割し、各分割データサイズについて、ＩＣタグから読み込む分割コマンド、またはＩＣタグへ書き込む分割コマンドを生成することによって、前記複数の分割コマンドを生成することが好ましい。
【００１７】
分割部は、前記コマンドによって示されるＩＣタグに書き込むべきデータまたはＩＣタグから読み込むべきデータサイズをさらに小さく分割した分割データサイズごとの分割コマンドを生成するので、前記ジョブ制御部は、分割された分割データサイズごとの書き込み処理または読み込み処理を、複数のリーダライタに分散して実行させることができる。そのため、前記データをＩＣタグに書き込む処理または前記データをＩＣタグから読み込む処理の成功率が向上する。
【００１８】
例えば、処理対象のＩＣタグが１つのリーダライタが備えるアンテナの交信範囲に存在している時間が、コマンドが示すデータを書き込む処理を完了させるのに十分でない場合であっても、そのデータを分割したサイズの分割データについて、複数のリーダライタによって、それぞれ書き込む処理を実行させることにより、そのコマンドの処理を完了させることができる。
【００１９】
本発明にかかるタグアクセス制御システムにおいて、前記ジョブ制御部は、リーダライタのアンテナの交信範囲内にあるＩＣタグの識別子を予め決められた数だけタググループとして検出し、タググループに含まれるそれぞれの識別子を前記ジョブリストと対応付けて前記記録部へ記録し、前記タググループに含まれる識別子のＩＣタグに対応する前記ジョブデータが示す複数の分割コマンドを、前記複数のリーダライタに順次割り当てることが好ましい。
【００２０】
前記ジョブ制御部は、予め決められた数のＩＣタグが設けられた物品群が移動する場合に、それらの物品群のＩＣタグを、前記タググループとして予め決められた数だけ検出するので、検出の確実性が向上する。
【００２１】
本発明にかかるタグアクセス制御システムにおいて、前記ジョブ制御部は、前記物品の移動経路において先行するアンテナのリーダライタにおける分割コマンドの実行結果に基づいて、実行する分割コマンドを選択し、前記リーダライタ以外のリーダライタに割り当てることが好ましい。
【００２２】
これにより、前記ジョブ制御部は、先行する分割コマンドの実行結果に応じて、動的に分割コマンドを割り当てることができる。その結果、コマンドの成功率が向上する。例えば、前記ジョブ制御部は、移動経路において先行するリーダライタにおける分割コマンドが失敗した場合に、同じ分割コマンドを他のリーダライタで再実行させることができる。また、先行する分割コマンドが予定より早く完了したために時間に余裕がある場合には、分割コマンドを前倒しして実行することもできる。
【００２３】
本発明にかかるタグアクセス制御システムにおいて、前記分割部は、前記物品の移動経路において先行するリーダライタによって実行され成功した分割コマンドを前記ジョブリストから除いて残った分割コマンドが示す、ＩＣタグから読み込むべきデータまたはＩＣタグに書き込むべきデータのサイズを、複数の分割データサイズに分割し、各分割データサイズのデータについて、ＩＣタグから読み込む分割コマンド、またはＩＣタグへ書き込む分割コマンドを生成することが好ましい。
【００２４】
これにより、前記ジョブ制御部は、前記移動経路において先行するリーダライタで分割コマンドが成功した結果、残された分割コマンドが示す処理について、ＩＣタグから読み込むべきデータまたはＩＣタグに書き込むべきデータのサイズを複数の分割データサイズに分割するので、先行する分割コマンドの実行結果を考慮して前記分割データサイズを生成することができる。
【００２５】
本発明にかかるタグアクセス制御システムは、前記物品の移動速度を測定する速度測定部と、前記移動速度を用いて、ＩＣタグが前記複数のアンテナの交信範囲内に存在している時間を表す情報を生成して前記移動情報として前記記録部に記録する移動情報生成部とをさらに備えることが好ましい。
【００２６】
前記時間情報生成部は、前記速度測定部が測定した物品の移動速度を用いて、ＩＣタグが各リーダライタのアンテナの交信範囲に存在する時間を表す情報を、前記移動情報として生成するので、実際の物品の移動速度に応じた移動情報が生成される。ジョブ制御部は、移動情報に基づいて前記複数のジョブを前記複数のリーダライタに割り当てるので、実際の物品の移動速度に適合するように、ジョブを割り当てることができる。
【００２７】
本発明にかかるタグアクセス制御方法は、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、前記コンピュータが備えるコマンド受付部が、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる工程と、前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含む。
【００２８】
本発明にかかるタグアクセス制御プログラムは、ＩＣタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたＩＣタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、前記複数のリーダライタのうちいずれか１つのリーダライタにおけるアンテナの交信範囲内にあるＩＣタグの識別子を、前記リーダライタに検出させる検出処理と、前記検出処理で検出されたＩＣタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すＩＣタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させる。
【００２９】
以下、図面を参照して、本発明の実施の一形態を詳細に説明する。
【００３０】
（実施の形態１）
図１は、本実施形態におけるタグアクセス制御システムの構成を示す機能ブロック図である。図１に示すタグアクセス制御システム１は、コンピュータ１１で動作するソフトウエアとして実装される。コンピュータ１１には、センサ３１、リーダライタ（以下、Ｒ／Ｗと称する。）２６ａ、２６ｂ、２６ｃが接続されている。
【００３１】
Ｒ／Ｗは、ＩＣタグにデータを送信し、送信データに対するＩＣタグの応答データを受信することによって、ＩＣタグに記録されたデータの読み取りまたは、ＩＣタグへのデータの書き込みを行う装置である。
【００３２】
Ｒ／Ｗ２６ａにはアンテナ３２ａ―１、３２ａ―２、Ｒ／Ｗ２６ｂにはアンテナ３２ｂ、Ｒ／Ｗ２６ｃにはアンテナ３２ｃがそれぞれ設けられている。Ｒ／Ｗ２６ａは、アンテナ３２ａ―１、３２ａ−２の交信範囲にあるＩＣタグと無線によるデータの送受信を行う。Ｒ／Ｗ２６ｂ、Ｒ／Ｗ２６ｃも同様に、それぞれアンテナ３２ｂ、３２ｃの交信範囲にあるＩＣタグと無線によるデータ送受信を行う。
【００３３】
なお、１つのＲ／Ｗが１つのアンテナを備えてもよいし、２以上の複数のアンテナを備えてもよい。図１に示す例では、Ｒ／Ｗ２６ａだけが、２つのアンテナを備える構成であるが、それぞれのＲ／Ｗが備えるアンテナの数は、図１に示す例に限られない。
【００３４】
図１に示す例では、アンテナ３２ａ―１、３２ａ―２、３２ｂ、３２ｃは、互いに一定の間隔をおいて、一列に配置されている。アンテナ３２ａ―１、３２ａ―２、３２ｂ、３２ｃの配置方向に沿って、ベルトコンベア４１が配置されている。これにより、ベルトコンベア４１に載せられた物品３３ａは、アンテナ３２ａ―１、３２ａ―２、３２ｂ、３２ｃの交信範囲を順に通過するように移動する。物品３３ａには、ＩＣタグ３４ａが付されている。
【００３５】
ベルトコンベア４１の上流側には、センサ３１が設けられている。センサ３１は、ベルトコンベア４１上を移動して、アンテナ３２ａ−１の交信範囲へ入っていく物品の速度を検出する。
【００３６】
コンピュータ１１には、例えば、ＩＣタグとのデータの送受信をするためのコマンドを発行するアプリケーション１２が実装されている。タグアクセス制御システム１は、このアプリケーション１２の下位で、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃおよびセンサ３１を制御するミドルウエアとして実装される。
【００３７】
アプリケーション１２は、例えば、工程管理、物流管理、生産管理等の処理を行うソフトウエアである。
【００３８】
また、コンピュータ１１には、センサ３１を制御するためのデバイスドライバ２４および、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃそれぞれを制御するためのデバイスドライバ２５ａ、２５ｂ、２５ｃが設けられている。タグアクセス制御システム１は、デバイスドライバ２５ａ、２５ｂ、２５ｃを介して、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃを制御することができる。
【００３９】
タグアクセス制御システム１は、コマンド受付・返却部２、ジョブ制御部３、検出部４、分割部５、記録部６、タイマ２１、移動情報生成部２２、速度測定部２３を備える。
【００４０】
コマンド受付・返却部２は、アプリケーション１２とタグアクセス制御システム１とのインタフェース部である。コマンド受付・返却部２は、アプリケーション１２から、例えば、ＩＣタグにデータを書き込む命令を示すコマンド、またはＩＣタグからデータを読み出す命令を示すコマンドを受け付ける。また、コマンド受付・返却部２は、受け付けたコマンドの処理結果を、アプリケーション１２に返却する。
【００４１】
分割部５は、コマンド受付・返却部２が受け付けたコマンドが示す命令を実行するための複数の分割コマンドを生成する。すなわち、コマンドを、より細かい複数のコマンドに分割する。分割部５が生成した分割コマンドは、例えば、ジョブデータ１７として記録部６に記録される。
【００４２】
検出部４は、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃに、それぞれのアンテナの交信範囲内にあるＩＣタグの識別子（以下、ＩＤと称する）を検出させる。コマンド受付・返却部２が受け付けたコマンドは、例えば、検出部４が検出したＩＤのＩＣタグそれぞれに対して実行される。その場合、検出部４が検出したＩＣタグの識別子と、分割部５が生成した複数の分割コマンドとを対応付けたデータが記録部６に記録される。また、検出部４は、例えば、所定数のＩＣタグのＩＤを、タググループ１６として記録部６に記録してもよい。
【００４３】
検出部４が、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃのうちいずれか１つに、アンテナの交信範囲になるＩＣタグのＩＤを検出する命令を出すと、命令を受けたＲ／Ｗは、例えば、アンチコリジョンと呼ばれる技術を利用して、Ｒ／Ｗが備えるアンテナの交信範囲にある複数のＩＣタグのＩＤを検出することができる。
【００４４】
ジョブ制御部３は、検出部４で検出されたＩＤのＩＣタグに対応する複数の分割コマンドを、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃに順次割り当てて実行させる。ジョブ制御部３は、複数の分割コマンドをＲ／Ｗ２６ａ、２６ｂ、２６ｃに分散して順次送信する。ジョブ制御部３は、２つのアンテナを有するＲ／Ｗ２６ａに分割コマンドを送信する場合は、例えば、交信を行うアンテナを特定する情報を分割コマンドとともにＲ／Ｗ２６ａに送信する。Ｒ／Ｗ２６ａ、２６ｂ、２６ｃと、ＩＣタグとの交信は、例えば、ＩＳＯ１５６９３やＩＳＯ１８０００−６に規定された通信方式により行われる。
【００４５】
速度測定部２３は、センサ３１を用いて、ベルトコンベア４１上を移動する物品３３ａの移動速度を測定し、記録部６へ記録する（図示せず）。移動情報生成部２２は、速度測定部２３が測定した移動速度を用いて、ＩＣタグがアンテナ３２ａ―１、３２ａ−２、３２ｂ、３２ｃそれぞれの交信範囲内に存在している時間を表す情報を生成して移動情報１５として記録部６に記録する。
【００４６】
ジョブ制御部３は、記録部６に記録された移動情報１５とＲ／Ｗ情報１４と、タイマ２１による現在時刻とを用いて、ベルトコンベア４１上を移動するＩＣタグの位置と時刻を予測することができる。そのため、ジョブ制御部３は、複数の分割コマンドをＲ／Ｗ２６ａ、２６ｂ、２６ｃに割り当てる際に、ＩＣタグの動きに応じた適切な割り当てを行うことができる。
【００４７】
コンピュータ１１には、例えば、パーソナルコンピュータ、サーバ、ワークステーション等の汎用コンピュータを用いることができる。また、コンピュータ１１は、Ｒ／Ｗ制御専用のコンピュータであってもよい。コマンド受付・返却部２、ジョブ制御部３、検出部４、分割部５、移動情報生成部２２、速度測定部２３の機能は、コンピュータ１１が備えるＣＰＵが、所定のプログラムを実行することによって実現できる。
【００４８】
また、記録部６には、例えば、コンピュータ１１が備えるハードディスク、フレキシブルディスク、ＤＶＤ等の外部記憶装置のほか、ＣＰＵが直接読み書きできるＲＡＭやＲＯＭ等の半導体メモリ等を用いることができる。
【００４９】
なお、タグアクセス制御システム１の構成は、図１に示す構成に限られない。例えば、タグアクセス制御システム１の機能を、複数のコンピュータで分散させることもできる。また、コマンド受付・返却部２、ジョブ制御部３、検出部４、分割部５、移動情報生成部２２、速度測定部２３の機能を実現するためのプログラムを、ネットワークまたは記録媒体を通じてコンピュータ１１へインストールすることによって、タグアクセス制御システム１を構築することができる。
【００５０】
次に、タグアクセス制御システム１が、アプリケーション１２からのコマンドに従って、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃを制御してＩＣタグとデータ送受信を行う処理の例を説明する。図２は、タグアクセス制御システム１が、アプリケーション１２からのコマンドを受け付けて、それに従って処理を行い、処理結果を返却するまでの処理の一例を示すフローチャートである。
【００５１】
図２に示す処理では、まず、コマンド受付・返却部２が、アプリケーション１２からのコマンドを受け付ける（ステップＳ１）。コマンドは、例えば、ＩＣタグにデータを書き込む命令またはＩＣタグからデータを読み込む命令である。
【００５２】
図３（ａ）は、ＩＣタグからデータを読み出す命令を示すコマンドの例である。図３（ａ）に示すコマンドには、ＲＥＡＤ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とが含まれている。図３（ａ）に示すコマンドは、例えば、ＩＣタグのメモリの先頭（０）から１０バイト分のデータを読み込む（ＲＥＡＤ）命令を示している。
【００５３】
図３（ｂ）は、ＩＣタグにデータを書き込む命令を示すコマンドの例である。図３（ｂ）に示すコマンドには、ＷＲＩＴＥ命令と、書き込みを開始する位置を示すオフセットと、書き込むデータの量を示すバイト数とに加えて、書き込むべきデータが含まれている。図３（ｂ）に示すコマンドは、例えば、ＩＣタグのメモリの先頭（０）から１０バイト分の領域に“Ｄａｔａ１”を書き込む（ＷＲＩＴＥ）命令を示している。
【００５４】
以下、コマンド受付・返却部２がデータをＩＣタグから読み出すコマンドを受け付けた場合を例に挙げて説明する。コマンドを受け付けた後、速度測定部２３は、センサ３１を作動させ、センサ３１が物品３３ａを検出するまで待機する。速度測定部２３は、センサ３１が移動する物品３３ａを検出するとその速度ｖを測定する（ステップＳ２）。
【００５５】
速度測定部２３は、センサが物品３３ａを検出した時刻Ｔ0をタイマ２１により取得して記録部６に記録しておくことが好ましい。移動情報生成部２２は、時刻Ｔ0、速度ｖおよび記録部６に予め記録されたＲ／Ｗ情報１４を用いて、物品３３ａが、アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃそれぞれの交信範囲内にいる時間を予測することができる。
【００５６】
Ｒ／Ｗ情報１４は、例えば、Ｒ／Ｗ２６ａ、２６ｂ、２６ｃが有するアンテナの数、各アンテナの位置、アンテナ間の幅、各アンテナの交信範囲の大きさ等を示すデータである。図４は、Ｒ／Ｗ情報１４に含まれるデータの例を模式的に示すための図である。図４においてｘ軸は、アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの配置方向の位置を示す。図４において、ｒ１、ｒ２、ｒ３、ｒ４で示される点線は、アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの交信範囲をそれぞれ表している。ｘ軸上の位置ｐ１、ｐ２、ｐ３、ｐ４は、アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの位置をそれぞれ表す値とすることができる。また、長さａ１、ａ２、ａ３、ａ４は、各アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの交信範囲の長さを示している。
【００５７】
移動情報生成部２２は、図４に示す位置ｐ１、ｐ２、ｐ３、ｐ４、長さａ１、ａ２、ａ３、ａ４および速度測定部２３が測定した時刻Ｔ0、速度ｖを用いて、ＩＣタグが前記複数のアンテナの交信範囲内に存在している時間を表す移動情報１５を生成することができる。移動情報１５は記録部６へ記録される。移動情報１５は、例えば、物品が各アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの交信範囲に入る時刻Ｔ1、Ｔ2、Ｔ3、Ｔ4および各アンテナ３２ａ−１、３２ａ―２、３２ｂ、３２ｃの交信範囲に存在している時間Ｔa1、Ｔa2、Ｔa3、Ｔa4等を表すデータである。
【００５８】
図５は、時刻Ｔ1、Ｔ2、Ｔ3、Ｔ4および時間Ｔa1、Ｔa2、Ｔa3、Ｔa4の例を模式的に表した図である。図５において横軸は、時間の遷移を示している。移動情報生成部２２は、図５に示すような時刻Ｔ1、Ｔ2、Ｔ3、Ｔ4および時間Ｔa1、Ｔa2、Ｔa3、Ｔa4を算出し、移動情報１５として記録部６に記録する。これらの値は、後述の処理で利用される。
【００５９】
物品３３ａの速度ｖが測定されると、ジョブ制御部３は、変数を初期化する（ステップＳ３）。例えば、アンテナのカウンタｋが１に、ＩＣタグＩＤの検出数Ｎが０に設定される。この場合、ｋ＝１は、現在の処理対象のアンテナは、１番目のアンテナ（すなわちアンテナ３２ａ−１）であることを意味する。Ｎ＝０は、現在検出されたＩＣタグのＩＤの数が０であることを意味する。
【００６０】
次に、ジョブ制御部３は、現在検出されているＩＣタグのＩＤの数が、タググループの期待タグ枚数Ｍに達しているか否かを判断する（ステップＳ４）。タググループの期待タブ枚数Ｍは、例えば、１つのコマンドで処理するＩＣタグの数を表す値である。すなわち、１つタググループに含まれるＩＣタグの数は、１つのコマンドで処理されるＩＣタグの数とすることができる。タググループの期待タグ枚数Ｍは、予め記録部６に、パラメータ１３として記録されている。例えば、物品が４個ずつ梱包されて移動することが予め決まっている場合には、Ｍ＝４と記録される。このように、タググループのタグ枚数は、物品の状態によって決められることが好ましい。
【００６１】
現在検出されているＩＣタグのＩＤの数Ｎは０であり、期待タグ枚数Ｍに達していないので（Ｎ＜Ｍ）、検出部４が、時刻Ｔ1に、１番目のアンテナ３２ａ−１を介してタグを検出する（ステップＳ５）。ここで、時刻Ｔ1は、物品が１番目のアンテナの交信範囲内に入ってくる予想時刻であり、移動情報１５として記録部６に記録されている。検出部４は、例えば、Ｒ／Ｗ２６ａに対して、アンテナ３２ａ−１の交信範囲にあるＩＣタグのＩＤを検出するための検出コマンドを、予め決められた回数（例えば、Ｒ回）だけ発行する。Ｒ回は，例えば、パラメータ１３として予め記録部６に記録されていてもよい。
【００６２】
また、検出部４は、期待タグ枚数ＭのＩＣタグのＩＤが検出されるまで、繰返し検出コマンドを発行してもよい。また、検出部４は、検出コマンドを発行してもＩＤが検出されないことが、所定回数連続して続いた場合は、物品がアンテナ３２ａ−１の交信範囲にないと判断して検出処理を終了してもよい。
【００６３】
検出部４は、検出したＩＣタグのＩＤと、コマンド受付・返却部２が受け付けたコマンドとで構成されるデータの組をジョブリストに追加する（ステップＳ６）。ジョブリストは、例えば、ＩＣタグのＩＤと、コマンドとで構成されるデータの組が、複数のＩＤについてき記録されたデータである。コマンドを実行するための処理はジョブと呼ばれるデータで表されるものとする。ジョブリストは、例えば、ジョブデータ１７の一部として記録部６に記録される。また、検出部４は、検出したＩＣタグのＩＤの数をＮに加える（ステップＳ７）。
【００６４】
図６（ａ）は、検出部４が検出したＩＣタグのＩＤが記録されたジョブリストの例を示す図である。図６（ａ）に示すジョブリスト５０ａは、例えば、図３（ａ）に示すコマンドを、コマンド受付・返却部２が受け付けた場合のジョブリストの例である。ジョブリスト５０ａは、ＩＣタグのＩＤを表すデータ部分５１およびコマンドを表すデータ部分５２ａからなるデータのリストで構成されている。コマンドを表すデータ部分５２ａには、図３（ａ）に示すコマンドと同様に、ＲＥＡＤ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とを表すデータが含まれている。図６（ａ）に示すジョブリストは、検出部４は検出したＩＤ（ｔ1、ｔ2、ｔ3、・・・ｔi）のＩＣタグついて、それぞれ図３（ａ）で示されるコマンドが実行されることを表している。
【００６５】
検出部４は、ジョブリストにすでに追加されているＩＣタグのＩＤを、再度、検出した場合、そのＩＤはジョブリストに追加しないようにすることが好ましい。これにより、同じＩＤが重複して登録されるのが避けられる。
【００６６】
検出部４による検出処理（ステップＳ５、Ｓ６、Ｓ７）の後、ジョブ制御部３は、現在のアンテナ３２ａ−１におけるＩＣタグとの通信が可能な残り時間Ｔｒを計算する（ステップＳ８）。時間Ｔｒは、例えば、タイマ２１から得られる現在時刻と、時刻Ｔ1とアンテナ３２ａ−１に存在する時間Ｔa1とを用いて計算することができる。ジョブ制御部３は、残り時間Ｔｒがまだあるか否かを判断する（ステップＳ９）。
【００６７】
現在のアンテナにおけるＩＣタグとの通信が可能な時間Ｔｒが０（Ｔｒ＝０）の場合、ジョブ制御部３は、アンテナのカウンタｋに１を足して、ｋ＝２とする（ステップＳ１０）。これにより、処理対象のアンテナが２番目のアンテナ３２ａ−２に変わる。残り時間Ｔｒが０でない場合、分割部５は、すべての未処理のジョブの処理に要すると予測される時間ＴＪ（以下、残ジョブ処理予測時間ＴＪと称する）と、残りのアンテナの実行許容時間ＴＬ＋Ｔｒの値を算出する（ステップＳ１１）。
【００６８】
残ジョブ処理予測時間ＴＪは、例えば、未処理のジョブについて、ジョブ毎に処理に要する時間を算出し、その総和により求められる。また、残りのアンテナの実行許容時間ＴＬは、例えば、各アンテナの移動情報１５（移動タグの各アンテナにおける存在時間）の総和により求められる。
【００６９】
分割部５は、算出した残ジョブ処理予測時間ＴＪと、残りのアンテナの実行許容時間ＴＬ＋Ｔｒの値とを比較する（ステップＳ１２）。残ジョブ処理予測時間ＴＪが残りのアンテナの実行許容時間ＴＬ＋Ｔｒの値より小さい場合は（ステップＳ１２でＹｅｓ）、コマンド分割処理（ステップＳ１４）を行う。コマンド分割処理については後述する。
【００７０】
残ジョブ処理予測時間ＴＪが残りのアンテナの実行許容時間ＴＬ＋Ｔｒの値より大きい場合は（ステップＳ１２でＮｏ）、残りのアンテナですべてのジョブを実行するのが不可能なため、この時点でアプリケーションにアラートを上げる（ステップＳ１３）。実施例によっては、アラートを上げずにできるところまで実行して結果をアプリケーションに戻すことがあってもよい。
【００７１】
処理対象のアンテナが２番目のアンテナ３２ａ−２に変わると、ジョブ制御部３は、再び、検出したＩＣタグのＩＤの数Ｎが、期待タグ枚数Ｍに達しているか否かを判断する（ステップＳ４）。１番目のアンテナ３２ａ−１で検出したＩＣタグのＩＤの数Ｎが、すでに期待タグ枚数Ｍに達しているすでに達している（Ｎ＝Ｍ）場合、ステップＳ５、Ｓ６、Ｓ７の検出処理は行われない。この場合、ステップＳ８で計算される残り時間Ｔｒは、通常０でないので、分割部５が、コマンド分割処理（ステップＳ１４）を行う。
【００７２】
分割部５は、分割処理において、例えば、ステップＳ６で、ジョブリストに追加されたＩＣタグのＩＣに対応するコマンドを、さらに複数の分割コマンドに分割して新たなジョブリストを生成する。
【００７３】
図６（ｂ）は、分割部５が、図６（ａ）に示すジョブリスト５０ａに含まれるコマンドを分割することによって、新たに生成したジョブリスト５０ｂの例を示す図である。分割部５は、例えば、ＩＣタグのＩＤごとのコマンドを複数の分割コマンドに分割する。例えば、ＩＣタグのＩＤ＝ｔ1のコマンドは、ＩＣタグのメモリの先頭（０）から１０バイト分のデータを読み込む命令を示している。分割部５は、このコマンドを例えば、ＩＣタグのメモリの先頭（０）から５バイト分のデータを読み込む分割コマンドと、ＩＣタグのメモリの先頭から５バイト目から５バイト分のデータを読み込む分割コマンドとに分割することができる。
【００７４】
例えば、図６（ｂ）に示すＩＣタグのＩＤ＝ｔ2のコマンドは、ｍ個の分割コマンドＪ1、Ｊ2、Ｊ3、・・・Ｊmに分割されている。
【００７５】
一例として、分割前のコマンドが、ＩＣタグのメモリの先頭よりｆバイト目からｂバイト分のデータを読み込む命令である場合（オフセット＝ｆ、バイト数＝ｂ）、このコマンドを、ｍ個の分割コマンドに分割する場合について説明する。ｂ／ｍを下回らない最小の整数をｓとすると、分割後の分割コマンドＪ1、Ｊ2、Ｊ3、・・・Ｊmを以下のように表すことができる。
【００７６】
Ｊ1：オフセット＝ｆ、バイト数＝ｓ
Ｊ2：オフセット＝ｆ＋ｓ、バイト数＝ｓ
Ｊ3：オフセット＝ｆ＋２ｓ、バイト数＝ｓ
・・・
Ｊm：オフセット＝ｆ＋ｍｓ、バイト数＝ｂ−（ｍ−１）ｓ
【００７７】
このように、分割部５は、コマンドを示すＩＣタグから読み込むべきデータを、複数のデータに分割して、分割したそれぞれのデータを読み込む複数の分割コマンドを生成することができる。同様にして、ＩＣタグにデータを書き込むコマンドを、分割されたデータを書き込む複数の分割コマンドに分割することもできる。
【００７８】
ここで、分割数ｍは、例えば、分割前のコマンドによって読み込まれるべきデータの量およびＩＣタグと複数のＲ／Ｗ間の交信可能時間等に基づいて決められることが好ましい。分割部５が分割数ｍを計算して分割コマンドを生成する処理の詳細について後述する。
【００７９】
ジョブ制御部３は、分割部５によって生成された分割コマンドをＲ／Ｗ２６ａに、現在のアンテナ３２ａ−２（ｋ＝２番目のアンテナ）を介して実行させる（ステップＳ１５）。例えば、ジョブ制御部３は、図６（ｂ）に示すジョブリスト５０ｂのＩＣタグのＩＤ＝ｔ1の分割コマンドを１つずつ順番にＲ／Ｗ２６ａに対して、アンテナ３２ａ−２を用いて実行する旨の情報とともに送信し、それぞれの分割コマンドについて処理結果を取得する。同様に、ＩＣタグのＩＤ＝ｔ2、ｔ3、・・・それぞれに含まれる分割コマンドについても順番に１つずつ分割コマンドを送信し、分割コマンドごとに処理結果を取得する。
【００８０】
ジョブ制御部３は、例えば、分割コマンドの処理結果が、所定回数連続で失敗である場合に、現在のアンテナを介した分割コマンド実行処理（ステップＳ１５）を終了してもよい。これにより、現在のアンテナの交信範囲にＩＣタグが存在していて、分割コマンドが失敗しない限り、分割コマンドの実行処理が続けられる。
【００８１】
なお、ジョブ制御部３は、一定時間経過後に分割コマンド実行処理（ステップＳ１５）を終了するようにしてもよい。また、ジョブリストの分割コマンドが全て実行された場合も、分割コマンド実行処理（ステップＳ１５）は終了する。
【００８２】
ジョブ制御部３は、現在のアンテナを介した分割コマンド実行処理（ステップＳ１５）において処理結果が成功であった分割コマンドを、ジョブリストから削除する（ステップＳ１６）。これにより、ジョブリストには、未実行の分割コマンドか、実行に失敗した分割コマンドだけが残る。結果として、実行する必要のある分割コマンドが選択されてジョブリストに残ることになる。
【００８３】
図６（ｃ）は、図６（ｂ）で示したジョブリスト５０ｂから成功した分割コマンドを削除したジョブリストの例である。図６（ｃ）に示すジョブリスト５０ｃでは、ジョブリスト５０ｂに含まれていた分割コマンドのうち、ＩＣタグのＩＤ＝ｔ1の分割コマンドと、ＩＣタグのＩＤ＝ｔ2の分割コマンドＪ1、Ｊ2が削除されている。
【００８４】
また、分割コマンドの処理結果は、ジョブデータ１７の一部として、記録部６に記録されることが好ましい。図７は、分割コマンドの処理結果を表すデータの例を示す図である。図７に示す例では、ＩＣタグのＩＤごとに、分割数、完了、分割コマンドを表すデータがそれぞれ記録されている。ジョブ制御部３は、例えば、分割コマンドの処理結果が全て成功であるＩＣタグのＩＤの完了を表すデータを“１”に更新する。これにより、ＩＣタグごとに処理が完了したか否かを示す情報が記録される。
【００８５】
また、複数のＩＣタグをまとめたタググループごとの処理結果を示すタググループ１６が記録部６に記録されてもよい。図８は、タググループごとの処理結果を表すデータの例を示す図である。図８に示す例では、タググループＩＤごとに、完了を表すデータと、タググループＩＤのタググループに含まれるＩＣタグのＩＤを表すデータとが記録されている。これにより、タググループ単位ごとに処理が完了したか否かを示す情報が記録される。ジョブ制御部３は、例えば、ＩＣタグごとの処理結果を基に、タググループごとの処理結果を更新することができる。
【００８６】
例えば、コマンド受付・返却部２がアプリケーション１２から受け付けた１つのコマンドで処理するＩＣタグの集合を、１つのタググループとすることが好ましい。これにより、タググループごとの処理結果は、コマンドごとの処理結果を表すことになる。
【００８７】
ジョブ制御部３は、現在のアンテナのカウンタｋが、タグアクセス制御システム１が制御する全アンテナ数に達しているか否かを判断する（ステップＳ１７）。
【００８８】
現在のアンテナのカウンタｋが２の場合、ｋは、全アンテナ数の４に達していないので、（ステップＳ１７でＮｏ）、ジョブ制御部３は、再び、ステップＳ４の処理を行う。ステップＳ４では、すでに、１番目のアンテナを介して検出されたＩＤの数Ｎは、期待タグ枚数Ｍに達しているので（Ｎ＝Ｍ）、ステップＳ５〜７の処理はされずに、ステップＳ８で２番目のアンテナでの残り時間Ｔｒが計算される。２番目のアンテナを介して、すでに、ステップＳ１５の分割コマンド実行処理が行われているので、残り時間Ｔｒ＝０である可能性が高い。Ｔｒ＝０の場合、ｋがインクリメントされ（ステップＳ１０）、処理対象のアンテナが３番目のアンテナ（すなわち、アンテナ３２ｂ）となる。
【００８９】
その後、ジョブ制御部３は、ステップＳ４、Ｓ８、Ｓ９、Ｓ１１、Ｓ１２の処理を行い、分割部５が、コマンド分割処理（ステップＳ１４）を行う。この時、ジョブリストは、例えば、図６（ｃ）に示すように、２番目のアンテナを介して実行された分割コマンドが削除された状態である。分割部５は、ジョブリストの分割コマンドをさらに分割することができる。また、分割部５は、例えば、例えば、ジョブリストに残っている分割コマンドで読み込まれるべきデータの合計量およびＩＣタグと複数のＲ／Ｗ間の交信可能時間等に基づいて、ジョブリストの分割コマンドをさらに分割するか否かを判断してもよい。判断の結果、コマンド分割を行わないようにしてもよい。
【００９０】
ジョブ制御部３は、分割コマンドを３番目のアンテナを介してＲ／Ｗ２６ｂに実行させる（ステップＳ１５）。処理が成功した分割コマンドについては、ジョブリストから削除される（ステップＳ１６）。ジョブ制御部３は、アンテナのカウンタｋが全アンテナ数に達しているか否かを判断する（ステップＳ１７）。このようにして、ｋが全アンテナ数に達するまで、上記の処理が繰り返される。
【００９１】
ｋが全アンテナ数に達した場合（ステップＳ１７でＹｅｓの場合）、コマンド受付・返却部２が、各ＩＣタグのＩＤにおける分割コマンドの処理結果に基づいて、コマンドの処理結果を生成する（ステップＳ１８）。コマンド受付・返却部２は、タググループがコマンドごとに作成された場合には、図８に示すようなタググループごとの処理結果を、コマンドの処理結果としてアプリケーション１２へ返却することができる。
【００９２】
（分割部５が、コマンドまたは分割コマンドを分割する処理の詳細な例）
ここで、ステップＳ１１のコマンド分割処理の詳細な例について説明する。図９は、分割部５が、ジョブリストのコマンドまたは分割コマンドを分割する処理の詳細な例を示すフローチャートである。図９に示すように、分割部５は、まず、ジョブリスト内に含まれる分割コマンドのうち、扱うデータのバイト数が最大である分割コマンドのバイト数Ｂを取得する（ステップＳ２１）。
【００９３】
また、分割部５は、ジョブリスト内に含まれる分割コマンドの総数Ｊを求める（ステップＳ２２）。さらに分割部５は、１つのアンテナにおいて、同一のＩＣタグと交信可能な時間Ｔａを求める（ステップＳ２３）。Ｔａは、例えば、アンテナの交信範囲の長さａと、物品の移動速度ｖを用いて、Ｔａ＝ａ／ｖにより、求められる。
【００９４】
分割部５は、バイト数Ｂのデータを扱う分割コマンドを実行するのにかかる時間の平均値Ｔｂを求める（ステップＳ２４）。Ｔｂは、例えば、予め記録部６に記録しておくことができる。分割部５は、分割数ｄ0＝１にして、ｄ0を初期化する（ステップＳ２５）。
【００９５】
分割部５は、１アンテナを介して実行できる分割コマンドの数ｒおよび現在のアンテナを介して残りの時間でできる分割コマンドの数ｒ´とを求める（ステップＳ２６）。例えば、分割部５は、１アンテナを介して同一のＩＣタグと交信できる交信可能時間Ｔａ、分割数ｄ0、バイト数Ｂの分割コマンドにかかる平均時間Ｔｂを用いて、１つのアンテナを介して実行できる分割コマンドの数ｒを下記（式１）により求めることができる。
【００９６】
（式１）
ｒ＝ｆｌｏｏｒ（Ｔａ×ｄ0／Ｔｂ）
【００９７】
上記（式１）で、ｆｌｏｏｒ（Ｘ）は、Ｘを超えない最大の整数を表す。
【００９８】
また、分割部５は、図２のステップＳ８で計算された現在のアンテナを介する交信が可能な残り時間Ｔｒを用いて、下記（式２）により、現在のアンテナを介して実行できる分割コマンドの数ｒ´を求めることができる。
【００９９】
（式２）
ｒ´＝ｆｌｏｏｒ（Ｔｒ×ｄ0／Ｔｂ）
【０１００】
上記（式２）においても、ｆｌｏｏｒ（Ｘ）は、Ｘを超えない最大の整数を表す。
【０１０１】
次に分割部５は、ｒ×残りのアンテナ数に、ｒ´を足した値（ｒ）がｄ0×Ｊを超えるか否かを判断する（ステップＳ２７）。ステップＳ２７でＮｏの場合、ｄ0に１を加えて（ステップＳ２８）、再度、ｒおよびｒ´を計算し（ステップＳ２６）、ｒ×残りのアンテナ数＋ｒ´が、ｄ0×Ｊを超えるか否かを判断する（ステップＳ２７）。ｒ×残りのアンテナ数＋ｒ´がｄ0×Ｊを超える（ステップＳ２７でＹｅｓ）まで、ｄ0に１を加えてｒおよびｒ´を計算する処理を繰り返す。
【０１０２】
ｒ×残りのアンテナ数＋ｒ´がｄ0×Ｊを超える（ステップＳ２７でＹｅｓ）と、分割部５は、ループカウンタｎを初期化（ｎ：＝０）して、コマンド分割処理（ステップＳ３０、ステップＳ３１）を行う。
【０１０３】
分割部５は、ジョブリストのｎ番目のＩＤの分割コマンドまたはコマンドが、すでにｄ0に分割されているか否かを判断し（ステップＳ３０）、判断結果がＮｏであるときに、ｎ番目のＩＤの分割コマンドまたはコマンドをｄ0に分割する（ステップＳ３１）。ステップＳ３０の判断結果がＹｅｓの場合は、そのＩＤの分割コマンドに関しては、分割しない。分割部５は、ジョブリスト中にある全てのＩＤの分割コマンドについて、上記ステップＳ３０の判断を行い、判断結果がＮｏの場合にステップＳ３１の分割処理を行う処理を繰り返す。上記ステップＳ３０の判断を行うことによって、分割が必要なＩＤの分割コマンドのみが分割されることになる。
【０１０４】
以上、本発明の実施形態について説明したが、本発明は、本実施形態に限られるものではない。本実施形態において、速度測定部２３が、センサ３１を用いて物品の速度ｖを測定しているが、物品の速度ｖが略一定である場合は、速度ｖを予め記録部６に記録しておくこともできる。
【０１０５】
（実施の形態２）
図１０は、実施の形態２におけるタグアクセス制御システムの構成を示す機能ブロック図である。本実施形態におけるタグアクセス制御システムの機能は、コンピュータ２８および複数のＲ／Ｗ２７ａ、２７ｂに分散されている。図１０に示す構成においては、コンピュータ２８、Ｒ／Ｗ２７ａ、２７ｂおよびセンサ３１が、ネットワーク３８を介して互いに接続されている。コンピュータ２８には、タグアクセス制御システムの機能の一部１ａとしてコマンド受付・返却部２と、Ｒ／Ｗ情報１４が記録された記録部６３が設けられる。コンピュータ２８は、さらに、コマンドを発行するアプリケーション１２と、ネットワーク３８を介して外部とデータ通信を行うための通信部６１ａを備える。
【０１０６】
Ｒ／Ｗ２７ａには、タグアクセス制御システムの機能の一部１ａとして、ジョブ制御部３、検出部４、分割部５、記録部６、連携部６２、タイマ２１が設けられる。Ｒ／Ｗ２７ｂにも、Ｒ／Ｗ２７ａと同様に、タグアクセス制御システムの機能の一部１ｃが設けられる。Ｒ／Ｗ２７ｂのタグアクセス制御システムの機能の一部１ｃは、Ｒ／Ｗ２７ａのタグアクセス制御システムの機能の一部１ｂと同様である。また、Ｒ／Ｗ２７ａの記録部６に記録されたパラメータ１３、Ｒ／Ｗ情報１４、移動情報１５、ジョブデータ１７およびタググループ１６と同じ内容のデータが、Ｒ／Ｗ２７ｂの記録部６にも記録される。
【０１０７】
Ｒ／Ｗ２７ａ、２７ｂは、ネットワーク３８を介して外部とデータ通信を行うための通信部６１ａ、６１ｃとアンテナ３２ｄ、３２ｅ、３２ｆ、３２ｇを制御するアンテナ制御部２９ａ、２９ｂをそれぞれ備える。
【０１０８】
コマンド受付・返却部２、ジョブ制御部３、検出部４、分割部５のそれぞれの機能は、実施の形態１と同様である。コマンド受付・返却部２とジョブ制御部３とのデータ通信は、ネットワーク３８、通信部６１ａ、６１ｂ、連携部６２を介して行われる。
【０１０９】
Ｒ／Ｗ２７ａのジョブ制御部３と、Ｒ／Ｗ２７ｂとのジョブ制御部（図示せず）とは、連携部６２および通信部６１ｂを介してデータ通信を行う。このデータ通信では、例えば、送信先Ｒ／ＷのＩＤ、受信元Ｒ／ＷのＩＤ、ジョブリスト等のデータが送受信される。ジョブリストには各分割コマンドを実行すべき実行時刻が指定されているか、各分割コマンドを実行させるためのトリガとなるセンサＩＤが指定されていてもよい。また、各Ｒ／Ｗにセンサが接続されている場合には明示的にセンサＩＤを指定しなくともよい。これにより、例えば、実施の形態１と同様に、コンピュータ２８のコマンド受付・返却部２が受け付けたコマンドの処理が、各Ｒ／Ｗ２７ａ、２７ｂで複数の分割コマンドに分割されてジョブリストが生成され、ジョブリストに含まれる複数のジョブが示す分割コマンドがＲ／Ｗ２７ａおよびＲ／Ｗ２７ｂに割り当てられる。
【０１１０】
ジョブリストにセンサＩＤが指定されている場合、各Ｒ／Ｗ２７ａ、２７ｂは、ジョブリストで指定されたセンサの動作を監視し、当該センサが作動した場合に、ジョブリストに含まれるジョブが示す分割コマンドを実行する。
【０１１１】
各Ｒ／Ｗ２７ａ、２７ｂが、指定された実行時刻に同期させてジョブを実行させる場合のＲ／Ｗ２７ａ、２７ｂ間のデータ通信では、分割コマンドを実行するタイミングを同期させるため、起動時の時計合わせと、時刻指定されたジョブリストが必要である。
【０１１２】
例えば、コンピュータ２８のコマンド受付・返却部２が受け付けたコマンドは、トリガとなるセンサＩＤとともにＲ／Ｗ２７ａへ通信部６１ａによって送信される。Ｒ／Ｗ２７ａの通信部６１ａは、コマンドとセンサＩＤを指定する情報を受信すると分割部５へコマンドとセンサＩＤを指定する情報を渡す。分割部５は、コマンドを分割して例えば、図６（ｂ）に示すようなジョブリストを生成する。ジョブ制御部３は、そのジョブリストに含まれるジョブが示す分割コマンドを、指定されたセンサをトリガとして実行する。
【０１１３】
このとき、例えば、実行が完了しなかった残りのジョブリストを“〔ｊｏｂ１、ｊｏｂ２、ｊｏｂ３〕”とし、Ｒ／Ｗ２７ｂでこのジョブリストを実行すべき時刻を “ｔｉｍｅ１”とすると、Ｒ／Ｗ２７ａのジョブ制御部３が通信部６１ｂを介してＲ／Ｗ２７ｂに向けて送信されるデータは（Ｒ／Ｗ２７ａ、Ｒ／Ｗ２７ｂ、〔ｊｏｂ１、ｊｏｂ２、ｊｏｂ３〕、ｔｉｍｅ１）のように表される。
【０１１４】
本実施形態では、タグアクセス制御システムの機能を分散させることで、コンピュータ２８に負荷が集中することを防ぐことができると同時に、並列処理を行うことによってタグアクセスの性能を向上させることができる。
【０１１５】
（実施の形態３）
実施の形態３は、実施の形態１におけるコンピュータ１１において、アプリケーション１２から発行されたコマンドが、ＩＣタグのメモリ上の互いに離れた複数の位置にデータを書き込む命令である場合の例である。
【０１１６】
図１１は、コマンド受付・返却部２が受け付けたコマンドの例を示す図である。図１１に示すコマンドには、書き込むデータのデータ名と、書き込むデータが含まれている。図１１に示すコマンドは、例えば、作業者ＩＤのデータとして、“ｙａｍａｄａ”を、通過時刻ｈ１のデータとして、“２００５１１１９１０３０”をＩＣタグへ書き込む命令を示すデータである。
【０１１７】
図１１に示すような、データ名とデータで書き込み命令が示されるコマンドが発行される場合、データ名とＩＣタグへの書き込む位置との対応関係を表すデータが必要になる。図１２は、データ名とＩＣタグとの対応関係を表すデータテーブルの例を示す図である。図１２に示すデータテーブルは、データ名ごとに対応するオフセットとサイズが記録されている。オフセットは、ＩＣタグメモリ上の書き込み開始する位置を示すデータであり、サイズは、書き込むことができるデータのサイズを示すデータである。
【０１１８】
図１３は、図１２に示されるデータが書き込まれたＩＣタグメモリの一例を模式的に示す図である。
【０１１９】
図１３に示すように、ＩＣタグメモリ６５において、作業者ＩＤのデータを書き込む領域６５ａと、通過時刻ｈ１のデータを書き込む領域６５ｂとが、物理的に互いに離れた位置に存在することがある。ＩＣタグメモリ６５上の斜線部６５ａが作業者ＩＤのデータの領域であり、斜線部６５ａとは離れた位置にある斜線部６５ｂが、通過時刻ｈ１のデータの領域を示している。
【０１２０】
図１３に示す例のように、離れた位置にデータを書き込む場合は、離れた位置のそれぞれのデータを分割単位として、それぞれのデータを書き込む分割コマンドを生成することが好ましい。例えば、検出部４が、ＩＣタグのＩＤを検出し、そのＩＣタグのＩＤに対応するコマンドをジョブリストに追加する際に、データ名ごとに分割コマンドを生成して追加することができる。
【０１２１】
図１４は、検出部４が、ＩＣタグのＩＤ＝ｔ１を検出した場合に、ｔ１の分割コマンドとして、作業者ＩＤを書き込む分割コマンド（ジョブＪ１）および通過時刻ｈ１を書き込む分割コマンド（ジョブＪ２）を生成してジョブリストに追加した場合の例を示す図である。ジョブリスト５０ｄには、作業者ＩＤ、通過時刻ｈ１それぞれの書き込み位置を示すオフセット、それぞれの書き込むデータサイズおよび書き込むデータが、タグｔ１と対応付けて記録されている。
【０１２２】
図１４に示すように、離れた位置にデータを書き込むコマンドを、離れた位置それぞれにおいてデータを書き込む複数の分割コマンドとすることによって、分割の手間を省き、複数のＲ／Ｗに効率良く分割コマンドを割り当てることができる。
【０１２３】
本発明は、工場などの生産現場や工場・倉庫・卸・小売間での物流の現場において、工程管理や入出庫管理の効率化を目的として、例えば、部材・製品・ケースなどの物品へのＩＣタグ適用が広まりつつある生産・物流分野等で利用され得る。
【産業上の利用可能性】
【０１２４】
本発明は、リーダライタを制御することによって、移動する物品に付された複数のＩＣタグの移動速度を低くすることなく、確実に交信することができるタグアクセス制御システムとして利用可能である。
【図面の簡単な説明】
【０１２５】
【図１】本実施形態におけるタグアクセス制御システムの構成を示す機能ブロック図である。
【図２】タグアクセス制御システム１が、コマンドを受け付けて、処理結果を返却するまでの処理の一例を示すフローチャートである。
【図３】（ａ）は、ＩＣタグからデータを読み出す命令を示すコマンドの例である。（ｂ）は、ＩＣタグにデータを書き込む命令を示すコマンドの例である。
【図４】Ｒ／Ｗ情報１４に含まれるデータの例を模式的に示すための図である。
【図５】時刻Ｔ1、Ｔ2、Ｔ3、Ｔ4および時間Ｔa1、Ｔa2、Ｔa3、Ｔa4の例を模式的に表した図である。
【図６】（ａ）は、検出部４が検出してＩＣタグのＩＤが記録されたジョブリストの例を示す図である。（ｂ）は、分割部５が、新たに生成したジョブリスト５０ｂの例を示す図である。（ｃ）は、ジョブリスト５０ｂから成功した分割コマンドを削除したジョブリストの例である。
【図７】分割コマンドの処理結果を表すデータの例を示す図である。
【図８】タググループごとの処理結果を表すデータの例を示す図である。
【図９】分割部５が、ジョブリストのコマンドまたは分割コマンドを分割する処理の詳細な例を示すフローチャートである。
【図１０】実施の形態２におけるタグアクセス制御システムの構成を示す機能ブロック図である。
【図１１】コマンド受付・返却部２が受け付けたコマンドの例を示す図である。
【図１２】データ名とＩＣタグとの対応関係を表すデータテーブルの例を示す図である。
【図１３】ＩＣタグメモリの一例を模式的に示す図である。
【図１４】検出部４が、作業者ＩＤを書き込む分割コマンド、通過時刻ｈ１を書き込む分割コマンドを生成してジョブリストに追加した場合の例を示す図である。
【符号の説明】
【０１２６】
１      タグアクセス制御システム
２      コマンド受付・返却部
３      ジョブ制御部
４      検出部
５      分割部
６、６３      記録部
１１、２８    コンピュータ
１２    アプリケーション
１３    パラメータ
１５    移動情報
１７    ジョブデータ
２１    タイマ
２２    移動情報生成部
２３    速度計測部
２４、２５ａ、２５ｂ、２５ｃ    デバイスドライバ
２６ａ、２６ｂ、２６ｃ  リーダライタ
２９ａ  アンテナ制御部
３１    センサ
３２ａ―１、３２ａ−２、３２ｂ、３２ｃ  アンテナ
３３ａ  物品
３４ａ  ＩＣタグ
３８    ネットワーク
４１    ベルトコンベア
４９ａ、４９ｂ、６５ａ、６５ｂ    コマンド
５０ａ、５０ｂ、５０ｃ、５０ｄ  ジョブリスト
６１ａ、６１ｂ、６１ｃ  通信部
６２    連携部
６５    タグメモリ
【図１】
2007156570.tif 000003
【図２】
2007156570.tif 000004
【図３】
2007156570.tif 000005
【図４】
2007156570.tif 000006
【図５】
2007156570.tif 000007
【図６】
2007156570.tif 000008
【図７】
2007156570.tif 000009
【図８】
2007156570.tif 000010
【図９】
2007156570.tif 000011
【図１０】
2007156570.tif 000012
【図１１】
2007156570.tif 000013
【図１２】
2007156570.tif 000014
【図１３】
2007156570.tif 000015
【図１４】
2007156570.tif 000016