説明

タグアクセス制御システム、タグアクセス制御方法およびタグアクセス制御プログラム

【課題】物品の移動速度を低下させずに、複数のICタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システムを提供する。
【解決手段】複数のアンテナをそれぞれに有する複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動するICタグとのデータ通信を制御するタグアクセス制御システムは、移動情報とリーダライタ情報とを記憶する記録部6と、コマンドを受け付けるコマンド受付部2と、コマンドから複数の分割コマンドを生成する分割部5と、複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグを検出する検出部4と、複数の分割コマンドを、移動情報15とリーダライタ情報14に応じて、複数のリーダライタに順次割り当てるジョブ制御部3と、コマンドに対する処理結果を返却する返却部2とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動する物品に設けられたICタグと、複数のリーダライタとのデータ通信を制御するタグアクセス制御システム、タグアクセス制御方法およびタグアクセス制御プログラムに関する。
【背景技術】
【0002】
近年、ICタグを使って物品を認識するRFID(Radio Frequency Identification)技術が注目されている。例えば、工場や物流拠点では、ベルトコンベア、フォークリフト、台車等により部品や製品等の物品が移送される。このような物品にICタグを付することによって、移送される物品の識別、管理等を行うことができる。特に、パッシブ型のICタグは電池を必要とせず、小型化・低価格化できるとされ、大量の物品の識別・管理に向くと期待されている。
【0003】
パッシブ型のICタグは、アンテナを備えたリーダライタと無線によりデータの授受を行う。リーダライタが、移送される物品に貼り付けたICタグへのデータ読み書きをする場合、移動中のICタグへのアクセスが求められることがある。しかし、移動するICタグとのデータ通信において、ICタグの移動速度をある一定値以上にすると読み書きに失敗する確率が急速に増大する。そのため、回転率を犠牲にしてもアンテナの通信可能範囲内で物品の移動を一時的に停止させたり、十分に遅い速度で物品を移動させたりする必要があった。このような状況において、タグを貼り付けた物品の移動速度の低下を不要にして全体効率を向上させる技術が必要とされる。
【0004】
従来、少しでも早くデータの読み書きを行うために、ICタグのデータ通信時間や読み書き処理時間を高速化するためのリーダライタ(R/W)やアンテナの技術が開発されてきた。しかし、単独のリーダライタやアンテナでの処理能力には限界がある。
【0005】
そのため、複数のリーダライタによって、記録速度を保ちながらも書き込み失敗率を少なくするラベルプリンタが開示されている(例えば、特許文献1参照)。このラベルプリンタでは、一つのリーダライタによるICタグへのデータ書込みが失敗した場合に、他のリーダライタによって再度書き込みが行われる。また、書き込むデータが一定以上の大きさを有する場合は、分割されたデータが、複数のリーダライタによってICタグに書き込まれる。
【特許文献1】特開2004−82432号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の発明は、同時に最大1枚のタグへのアクセスを前提としている。これに対して、例えば、生産・物流現場においては、複数のICタグが同時に1つのアンテナの交信範囲内に入るような運用が一般的である。そこで、一定の空間領域を占めて移動する複数のICタグのグループを扱う技術が必要となる。
【0007】
そこで、本発明は、物品の移動速度を低下させずに、複数のICタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明にかかるタグアクセス制御システムは、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御するタグアクセス制御システムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出部と、前記検出部で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すリーダライタの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備える。
【0009】
本発明にかかるタグアクセス制御方法は、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、前記コンピュータが備えるコマンド受付部が、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる工程と、前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すリーダライタの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含む。
【0010】
本発明にかかるタグアクセス制御プログラムは、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出処理と、前記検出処理で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させる。
【発明の効果】
【0011】
本発明によれば、物品の移動速度を低下させずに、複数のICタグに対するデータの読み書きの成功率を向上させることができるタグアクセス制御システム、タグアクセス制御方法、タグアクセス制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【0012】
本発明にかかるタグアクセス制御システムは、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御するタグアクセス制御システムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出部と、前記検出部で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備える。
【0013】
前記ジョブ制御部は、前記分割部が生成した複数の分割コマンドを、前記複数のリーダライタに割り当てるので、1つのコマンドを、複数のリーダライタに分散して実行させることができる。前記複数のリーダライタがそれぞれ有するアンテナは、ICタグの移動経路に沿って配置されている。そのため、ICタグが設けられた物品が、複数のアンテナの交信範囲を順に移動する際に、ICタグに対するコマンドを実行するための分割コマンドがそれぞれのリーダライタで分散して実行される。前記ジョブ制御部は、ICタグの移動状況および前記リーダライタの配置に応じて分割コマンドが割り当てられるので、適切なタイミングで、適切なリーダライタに分割コマンドを割り当てることができる。その結果、物品の移動速度を低下させずに、コマンドの成功率を向上させることができる。
【0014】
また、前記検出部が検出したICタグの識別子は、前記複数の分割コマンドと対応付けられてジョブリストに記録されるので、複数のICタグの識別子が検出された場合でも、それぞれのICタグについて分割コマンドが記録される。前記ジョブ制御部は、前記検出部が検出したICタグの識別子に対応する分割コマンドを、前記複数のリーダライタに割り当てることができる。そのため、複数のICタグに対する処理を、1つのアンテナを介した交信だけで完了させる必要がなく、複数のリーダライタに割り当てて、複数のアンテナによる交信で実行することができる。そのため、複数のICタグに対する処理成功率が向上する。
【0015】
また、ICタグを検出する処理と、ICタグに対してデータを読み書きする処理とは、前記検出部と、前記ジョブ制御部とが、それぞれリーダライタに実行させるので、1つのリーダライタで検出処理およびデータ読み書きする処理を完了させる必要がない。そのため、複数のリーダライタにこれらの処理を分散させることができるので、コマンドの成功率が向上する。
【0016】
本発明にかかるタグアクセス制御システムにおいて、前記分割部は、前記コマンドによって示されるICタグに書き込むべきデータまたはICタグから読み込むべきデータのサイズを複数の分割データサイズに分割し、各分割データサイズについて、ICタグから読み込む分割コマンド、またはICタグへ書き込む分割コマンドを生成することによって、前記複数の分割コマンドを生成することが好ましい。
【0017】
分割部は、前記コマンドによって示されるICタグに書き込むべきデータまたはICタグから読み込むべきデータサイズをさらに小さく分割した分割データサイズごとの分割コマンドを生成するので、前記ジョブ制御部は、分割された分割データサイズごとの書き込み処理または読み込み処理を、複数のリーダライタに分散して実行させることができる。そのため、前記データをICタグに書き込む処理または前記データをICタグから読み込む処理の成功率が向上する。
【0018】
例えば、処理対象のICタグが1つのリーダライタが備えるアンテナの交信範囲に存在している時間が、コマンドが示すデータを書き込む処理を完了させるのに十分でない場合であっても、そのデータを分割したサイズの分割データについて、複数のリーダライタによって、それぞれ書き込む処理を実行させることにより、そのコマンドの処理を完了させることができる。
【0019】
本発明にかかるタグアクセス制御システムにおいて、前記ジョブ制御部は、リーダライタのアンテナの交信範囲内にあるICタグの識別子を予め決められた数だけタググループとして検出し、タググループに含まれるそれぞれの識別子を前記ジョブリストと対応付けて前記記録部へ記録し、前記タググループに含まれる識別子のICタグに対応する前記ジョブデータが示す複数の分割コマンドを、前記複数のリーダライタに順次割り当てることが好ましい。
【0020】
前記ジョブ制御部は、予め決められた数のICタグが設けられた物品群が移動する場合に、それらの物品群のICタグを、前記タググループとして予め決められた数だけ検出するので、検出の確実性が向上する。
【0021】
本発明にかかるタグアクセス制御システムにおいて、前記ジョブ制御部は、前記物品の移動経路において先行するアンテナのリーダライタにおける分割コマンドの実行結果に基づいて、実行する分割コマンドを選択し、前記リーダライタ以外のリーダライタに割り当てることが好ましい。
【0022】
これにより、前記ジョブ制御部は、先行する分割コマンドの実行結果に応じて、動的に分割コマンドを割り当てることができる。その結果、コマンドの成功率が向上する。例えば、前記ジョブ制御部は、移動経路において先行するリーダライタにおける分割コマンドが失敗した場合に、同じ分割コマンドを他のリーダライタで再実行させることができる。また、先行する分割コマンドが予定より早く完了したために時間に余裕がある場合には、分割コマンドを前倒しして実行することもできる。
【0023】
本発明にかかるタグアクセス制御システムにおいて、前記分割部は、前記物品の移動経路において先行するリーダライタによって実行され成功した分割コマンドを前記ジョブリストから除いて残った分割コマンドが示す、ICタグから読み込むべきデータまたはICタグに書き込むべきデータのサイズを、複数の分割データサイズに分割し、各分割データサイズのデータについて、ICタグから読み込む分割コマンド、またはICタグへ書き込む分割コマンドを生成することが好ましい。
【0024】
これにより、前記ジョブ制御部は、前記移動経路において先行するリーダライタで分割コマンドが成功した結果、残された分割コマンドが示す処理について、ICタグから読み込むべきデータまたはICタグに書き込むべきデータのサイズを複数の分割データサイズに分割するので、先行する分割コマンドの実行結果を考慮して前記分割データサイズを生成することができる。
【0025】
本発明にかかるタグアクセス制御システムは、前記物品の移動速度を測定する速度測定部と、前記移動速度を用いて、ICタグが前記複数のアンテナの交信範囲内に存在している時間を表す情報を生成して前記移動情報として前記記録部に記録する移動情報生成部とをさらに備えることが好ましい。
【0026】
前記時間情報生成部は、前記速度測定部が測定した物品の移動速度を用いて、ICタグが各リーダライタのアンテナの交信範囲に存在する時間を表す情報を、前記移動情報として生成するので、実際の物品の移動速度に応じた移動情報が生成される。ジョブ制御部は、移動情報に基づいて前記複数のジョブを前記複数のリーダライタに割り当てるので、実際の物品の移動速度に適合するように、ジョブを割り当てることができる。
【0027】
本発明にかかるタグアクセス制御方法は、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、前記コンピュータが備えるコマンド受付部が、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる工程と、前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含む。
【0028】
本発明にかかるタグアクセス制御プログラムは、ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出処理と、前記検出処理で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させる。
【0029】
以下、図面を参照して、本発明の実施の一形態を詳細に説明する。
【0030】
(実施の形態1)
図1は、本実施形態におけるタグアクセス制御システムの構成を示す機能ブロック図である。図1に示すタグアクセス制御システム1は、コンピュータ11で動作するソフトウエアとして実装される。コンピュータ11には、センサ31、リーダライタ(以下、R/Wと称する。)26a、26b、26cが接続されている。
【0031】
R/Wは、ICタグにデータを送信し、送信データに対するICタグの応答データを受信することによって、ICタグに記録されたデータの読み取りまたは、ICタグへのデータの書き込みを行う装置である。
【0032】
R/W26aにはアンテナ32a―1、32a―2、R/W26bにはアンテナ32b、R/W26cにはアンテナ32cがそれぞれ設けられている。R/W26aは、アンテナ32a―1、32a−2の交信範囲にあるICタグと無線によるデータの送受信を行う。R/W26b、R/W26cも同様に、それぞれアンテナ32b、32cの交信範囲にあるICタグと無線によるデータ送受信を行う。
【0033】
なお、1つのR/Wが1つのアンテナを備えてもよいし、2以上の複数のアンテナを備えてもよい。図1に示す例では、R/W26aだけが、2つのアンテナを備える構成であるが、それぞれのR/Wが備えるアンテナの数は、図1に示す例に限られない。
【0034】
図1に示す例では、アンテナ32a―1、32a―2、32b、32cは、互いに一定の間隔をおいて、一列に配置されている。アンテナ32a―1、32a―2、32b、32cの配置方向に沿って、ベルトコンベア41が配置されている。これにより、ベルトコンベア41に載せられた物品33aは、アンテナ32a―1、32a―2、32b、32cの交信範囲を順に通過するように移動する。物品33aには、ICタグ34aが付されている。
【0035】
ベルトコンベア41の上流側には、センサ31が設けられている。センサ31は、ベルトコンベア41上を移動して、アンテナ32a−1の交信範囲へ入っていく物品の速度を検出する。
【0036】
コンピュータ11には、例えば、ICタグとのデータの送受信をするためのコマンドを発行するアプリケーション12が実装されている。タグアクセス制御システム1は、このアプリケーション12の下位で、R/W26a、26b、26cおよびセンサ31を制御するミドルウエアとして実装される。
【0037】
アプリケーション12は、例えば、工程管理、物流管理、生産管理等の処理を行うソフトウエアである。
【0038】
また、コンピュータ11には、センサ31を制御するためのデバイスドライバ24および、R/W26a、26b、26cそれぞれを制御するためのデバイスドライバ25a、25b、25cが設けられている。タグアクセス制御システム1は、デバイスドライバ25a、25b、25cを介して、R/W26a、26b、26cを制御することができる。
【0039】
タグアクセス制御システム1は、コマンド受付・返却部2、ジョブ制御部3、検出部4、分割部5、記録部6、タイマ21、移動情報生成部22、速度測定部23を備える。
【0040】
コマンド受付・返却部2は、アプリケーション12とタグアクセス制御システム1とのインタフェース部である。コマンド受付・返却部2は、アプリケーション12から、例えば、ICタグにデータを書き込む命令を示すコマンド、またはICタグからデータを読み出す命令を示すコマンドを受け付ける。また、コマンド受付・返却部2は、受け付けたコマンドの処理結果を、アプリケーション12に返却する。
【0041】
分割部5は、コマンド受付・返却部2が受け付けたコマンドが示す命令を実行するための複数の分割コマンドを生成する。すなわち、コマンドを、より細かい複数のコマンドに分割する。分割部5が生成した分割コマンドは、例えば、ジョブデータ17として記録部6に記録される。
【0042】
検出部4は、R/W26a、26b、26cに、それぞれのアンテナの交信範囲内にあるICタグの識別子(以下、IDと称する)を検出させる。コマンド受付・返却部2が受け付けたコマンドは、例えば、検出部4が検出したIDのICタグそれぞれに対して実行される。その場合、検出部4が検出したICタグの識別子と、分割部5が生成した複数の分割コマンドとを対応付けたデータが記録部6に記録される。また、検出部4は、例えば、所定数のICタグのIDを、タググループ16として記録部6に記録してもよい。
【0043】
検出部4が、R/W26a、26b、26cのうちいずれか1つに、アンテナの交信範囲になるICタグのIDを検出する命令を出すと、命令を受けたR/Wは、例えば、アンチコリジョンと呼ばれる技術を利用して、R/Wが備えるアンテナの交信範囲にある複数のICタグのIDを検出することができる。
【0044】
ジョブ制御部3は、検出部4で検出されたIDのICタグに対応する複数の分割コマンドを、R/W26a、26b、26cに順次割り当てて実行させる。ジョブ制御部3は、複数の分割コマンドをR/W26a、26b、26cに分散して順次送信する。ジョブ制御部3は、2つのアンテナを有するR/W26aに分割コマンドを送信する場合は、例えば、交信を行うアンテナを特定する情報を分割コマンドとともにR/W26aに送信する。R/W26a、26b、26cと、ICタグとの交信は、例えば、ISO15693やISO18000−6に規定された通信方式により行われる。
【0045】
速度測定部23は、センサ31を用いて、ベルトコンベア41上を移動する物品33aの移動速度を測定し、記録部6へ記録する(図示せず)。移動情報生成部22は、速度測定部23が測定した移動速度を用いて、ICタグがアンテナ32a―1、32a−2、32b、32cそれぞれの交信範囲内に存在している時間を表す情報を生成して移動情報15として記録部6に記録する。
【0046】
ジョブ制御部3は、記録部6に記録された移動情報15とR/W情報14と、タイマ21による現在時刻とを用いて、ベルトコンベア41上を移動するICタグの位置と時刻を予測することができる。そのため、ジョブ制御部3は、複数の分割コマンドをR/W26a、26b、26cに割り当てる際に、ICタグの動きに応じた適切な割り当てを行うことができる。
【0047】
コンピュータ11には、例えば、パーソナルコンピュータ、サーバ、ワークステーション等の汎用コンピュータを用いることができる。また、コンピュータ11は、R/W制御専用のコンピュータであってもよい。コマンド受付・返却部2、ジョブ制御部3、検出部4、分割部5、移動情報生成部22、速度測定部23の機能は、コンピュータ11が備えるCPUが、所定のプログラムを実行することによって実現できる。
【0048】
また、記録部6には、例えば、コンピュータ11が備えるハードディスク、フレキシブルディスク、DVD等の外部記憶装置のほか、CPUが直接読み書きできるRAMやROM等の半導体メモリ等を用いることができる。
【0049】
なお、タグアクセス制御システム1の構成は、図1に示す構成に限られない。例えば、タグアクセス制御システム1の機能を、複数のコンピュータで分散させることもできる。また、コマンド受付・返却部2、ジョブ制御部3、検出部4、分割部5、移動情報生成部22、速度測定部23の機能を実現するためのプログラムを、ネットワークまたは記録媒体を通じてコンピュータ11へインストールすることによって、タグアクセス制御システム1を構築することができる。
【0050】
次に、タグアクセス制御システム1が、アプリケーション12からのコマンドに従って、R/W26a、26b、26cを制御してICタグとデータ送受信を行う処理の例を説明する。図2は、タグアクセス制御システム1が、アプリケーション12からのコマンドを受け付けて、それに従って処理を行い、処理結果を返却するまでの処理の一例を示すフローチャートである。
【0051】
図2に示す処理では、まず、コマンド受付・返却部2が、アプリケーション12からのコマンドを受け付ける(ステップS1)。コマンドは、例えば、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令である。
【0052】
図3(a)は、ICタグからデータを読み出す命令を示すコマンドの例である。図3(a)に示すコマンドには、READ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とが含まれている。図3(a)に示すコマンドは、例えば、ICタグのメモリの先頭(0)から10バイト分のデータを読み込む(READ)命令を示している。
【0053】
図3(b)は、ICタグにデータを書き込む命令を示すコマンドの例である。図3(b)に示すコマンドには、WRITE命令と、書き込みを開始する位置を示すオフセットと、書き込むデータの量を示すバイト数とに加えて、書き込むべきデータが含まれている。図3(b)に示すコマンドは、例えば、ICタグのメモリの先頭(0)から10バイト分の領域に“Data1”を書き込む(WRITE)命令を示している。
【0054】
以下、コマンド受付・返却部2がデータをICタグから読み出すコマンドを受け付けた場合を例に挙げて説明する。コマンドを受け付けた後、速度測定部23は、センサ31を作動させ、センサ31が物品33aを検出するまで待機する。速度測定部23は、センサ31が移動する物品33aを検出するとその速度vを測定する(ステップS2)。
【0055】
速度測定部23は、センサが物品33aを検出した時刻T0をタイマ21により取得して記録部6に記録しておくことが好ましい。移動情報生成部22は、時刻T0、速度vおよび記録部6に予め記録されたR/W情報14を用いて、物品33aが、アンテナ32a−1、32a―2、32b、32cそれぞれの交信範囲内にいる時間を予測することができる。
【0056】
R/W情報14は、例えば、R/W26a、26b、26cが有するアンテナの数、各アンテナの位置、アンテナ間の幅、各アンテナの交信範囲の大きさ等を示すデータである。図4は、R/W情報14に含まれるデータの例を模式的に示すための図である。図4においてx軸は、アンテナ32a−1、32a―2、32b、32cの配置方向の位置を示す。図4において、r1、r2、r3、r4で示される点線は、アンテナ32a−1、32a―2、32b、32cの交信範囲をそれぞれ表している。x軸上の位置p1、p2、p3、p4は、アンテナ32a−1、32a―2、32b、32cの位置をそれぞれ表す値とすることができる。また、長さa1、a2、a3、a4は、各アンテナ32a−1、32a―2、32b、32cの交信範囲の長さを示している。
【0057】
移動情報生成部22は、図4に示す位置p1、p2、p3、p4、長さa1、a2、a3、a4および速度測定部23が測定した時刻T0、速度vを用いて、ICタグが前記複数のアンテナの交信範囲内に存在している時間を表す移動情報15を生成することができる。移動情報15は記録部6へ記録される。移動情報15は、例えば、物品が各アンテナ32a−1、32a―2、32b、32cの交信範囲に入る時刻T1、T2、T3、T4および各アンテナ32a−1、32a―2、32b、32cの交信範囲に存在している時間Ta1、Ta2、Ta3、Ta4等を表すデータである。
【0058】
図5は、時刻T1、T2、T3、T4および時間Ta1、Ta2、Ta3、Ta4の例を模式的に表した図である。図5において横軸は、時間の遷移を示している。移動情報生成部22は、図5に示すような時刻T1、T2、T3、T4および時間Ta1、Ta2、Ta3、Ta4を算出し、移動情報15として記録部6に記録する。これらの値は、後述の処理で利用される。
【0059】
物品33aの速度vが測定されると、ジョブ制御部3は、変数を初期化する(ステップS3)。例えば、アンテナのカウンタkが1に、ICタグIDの検出数Nが0に設定される。この場合、k=1は、現在の処理対象のアンテナは、1番目のアンテナ(すなわちアンテナ32a−1)であることを意味する。N=0は、現在検出されたICタグのIDの数が0であることを意味する。
【0060】
次に、ジョブ制御部3は、現在検出されているICタグのIDの数が、タググループの期待タグ枚数Mに達しているか否かを判断する(ステップS4)。タググループの期待タブ枚数Mは、例えば、1つのコマンドで処理するICタグの数を表す値である。すなわち、1つタググループに含まれるICタグの数は、1つのコマンドで処理されるICタグの数とすることができる。タググループの期待タグ枚数Mは、予め記録部6に、パラメータ13として記録されている。例えば、物品が4個ずつ梱包されて移動することが予め決まっている場合には、M=4と記録される。このように、タググループのタグ枚数は、物品の状態によって決められることが好ましい。
【0061】
現在検出されているICタグのIDの数Nは0であり、期待タグ枚数Mに達していないので(N<M)、検出部4が、時刻T1に、1番目のアンテナ32a−1を介してタグを検出する(ステップS5)。ここで、時刻T1は、物品が1番目のアンテナの交信範囲内に入ってくる予想時刻であり、移動情報15として記録部6に記録されている。検出部4は、例えば、R/W26aに対して、アンテナ32a−1の交信範囲にあるICタグのIDを検出するための検出コマンドを、予め決められた回数(例えば、R回)だけ発行する。R回は,例えば、パラメータ13として予め記録部6に記録されていてもよい。
【0062】
また、検出部4は、期待タグ枚数MのICタグのIDが検出されるまで、繰返し検出コマンドを発行してもよい。また、検出部4は、検出コマンドを発行してもIDが検出されないことが、所定回数連続して続いた場合は、物品がアンテナ32a−1の交信範囲にないと判断して検出処理を終了してもよい。
【0063】
検出部4は、検出したICタグのIDと、コマンド受付・返却部2が受け付けたコマンドとで構成されるデータの組をジョブリストに追加する(ステップS6)。ジョブリストは、例えば、ICタグのIDと、コマンドとで構成されるデータの組が、複数のIDについてき記録されたデータである。コマンドを実行するための処理はジョブと呼ばれるデータで表されるものとする。ジョブリストは、例えば、ジョブデータ17の一部として記録部6に記録される。また、検出部4は、検出したICタグのIDの数をNに加える(ステップS7)。
【0064】
図6(a)は、検出部4が検出したICタグのIDが記録されたジョブリストの例を示す図である。図6(a)に示すジョブリスト50aは、例えば、図3(a)に示すコマンドを、コマンド受付・返却部2が受け付けた場合のジョブリストの例である。ジョブリスト50aは、ICタグのIDを表すデータ部分51およびコマンドを表すデータ部分52aからなるデータのリストで構成されている。コマンドを表すデータ部分52aには、図3(a)に示すコマンドと同様に、READ命令と、読み込みを開始する位置を示すオフセットと、読み込むデータの量を示すバイト数とを表すデータが含まれている。図6(a)に示すジョブリストは、検出部4は検出したID(t1、t2、t3、・・・ti)のICタグついて、それぞれ図3(a)で示されるコマンドが実行されることを表している。
【0065】
検出部4は、ジョブリストにすでに追加されているICタグのIDを、再度、検出した場合、そのIDはジョブリストに追加しないようにすることが好ましい。これにより、同じIDが重複して登録されるのが避けられる。
【0066】
検出部4による検出処理(ステップS5、S6、S7)の後、ジョブ制御部3は、現在のアンテナ32a−1におけるICタグとの通信が可能な残り時間Trを計算する(ステップS8)。時間Trは、例えば、タイマ21から得られる現在時刻と、時刻T1とアンテナ32a−1に存在する時間Ta1とを用いて計算することができる。ジョブ制御部3は、残り時間Trがまだあるか否かを判断する(ステップS9)。
【0067】
現在のアンテナにおけるICタグとの通信が可能な時間Trが0(Tr=0)の場合、ジョブ制御部3は、アンテナのカウンタkに1を足して、k=2とする(ステップS10)。これにより、処理対象のアンテナが2番目のアンテナ32a−2に変わる。残り時間Trが0でない場合、分割部5は、すべての未処理のジョブの処理に要すると予測される時間TJ(以下、残ジョブ処理予測時間TJと称する)と、残りのアンテナの実行許容時間TL+Trの値を算出する(ステップS11)。
【0068】
残ジョブ処理予測時間TJは、例えば、未処理のジョブについて、ジョブ毎に処理に要する時間を算出し、その総和により求められる。また、残りのアンテナの実行許容時間TLは、例えば、各アンテナの移動情報15(移動タグの各アンテナにおける存在時間)の総和により求められる。
【0069】
分割部5は、算出した残ジョブ処理予測時間TJと、残りのアンテナの実行許容時間TL+Trの値とを比較する(ステップS12)。残ジョブ処理予測時間TJが残りのアンテナの実行許容時間TL+Trの値より小さい場合は(ステップS12でYes)、コマンド分割処理(ステップS14)を行う。コマンド分割処理については後述する。
【0070】
残ジョブ処理予測時間TJが残りのアンテナの実行許容時間TL+Trの値より大きい場合は(ステップS12でNo)、残りのアンテナですべてのジョブを実行するのが不可能なため、この時点でアプリケーションにアラートを上げる(ステップS13)。実施例によっては、アラートを上げずにできるところまで実行して結果をアプリケーションに戻すことがあってもよい。
【0071】
処理対象のアンテナが2番目のアンテナ32a−2に変わると、ジョブ制御部3は、再び、検出したICタグのIDの数Nが、期待タグ枚数Mに達しているか否かを判断する(ステップS4)。1番目のアンテナ32a−1で検出したICタグのIDの数Nが、すでに期待タグ枚数Mに達しているすでに達している(N=M)場合、ステップS5、S6、S7の検出処理は行われない。この場合、ステップS8で計算される残り時間Trは、通常0でないので、分割部5が、コマンド分割処理(ステップS14)を行う。
【0072】
分割部5は、分割処理において、例えば、ステップS6で、ジョブリストに追加されたICタグのICに対応するコマンドを、さらに複数の分割コマンドに分割して新たなジョブリストを生成する。
【0073】
図6(b)は、分割部5が、図6(a)に示すジョブリスト50aに含まれるコマンドを分割することによって、新たに生成したジョブリスト50bの例を示す図である。分割部5は、例えば、ICタグのIDごとのコマンドを複数の分割コマンドに分割する。例えば、ICタグのID=t1のコマンドは、ICタグのメモリの先頭(0)から10バイト分のデータを読み込む命令を示している。分割部5は、このコマンドを例えば、ICタグのメモリの先頭(0)から5バイト分のデータを読み込む分割コマンドと、ICタグのメモリの先頭から5バイト目から5バイト分のデータを読み込む分割コマンドとに分割することができる。
【0074】
例えば、図6(b)に示すICタグのID=t2のコマンドは、m個の分割コマンドJ1、J2、J3、・・・Jmに分割されている。
【0075】
一例として、分割前のコマンドが、ICタグのメモリの先頭よりfバイト目からbバイト分のデータを読み込む命令である場合(オフセット=f、バイト数=b)、このコマンドを、m個の分割コマンドに分割する場合について説明する。b/mを下回らない最小の整数をsとすると、分割後の分割コマンドJ1、J2、J3、・・・Jmを以下のように表すことができる。
【0076】
1:オフセット=f、バイト数=s
2:オフセット=f+s、バイト数=s
3:オフセット=f+2s、バイト数=s
・・・
m:オフセット=f+ms、バイト数=b−(m−1)s
【0077】
このように、分割部5は、コマンドを示すICタグから読み込むべきデータを、複数のデータに分割して、分割したそれぞれのデータを読み込む複数の分割コマンドを生成することができる。同様にして、ICタグにデータを書き込むコマンドを、分割されたデータを書き込む複数の分割コマンドに分割することもできる。
【0078】
ここで、分割数mは、例えば、分割前のコマンドによって読み込まれるべきデータの量およびICタグと複数のR/W間の交信可能時間等に基づいて決められることが好ましい。分割部5が分割数mを計算して分割コマンドを生成する処理の詳細について後述する。
【0079】
ジョブ制御部3は、分割部5によって生成された分割コマンドをR/W26aに、現在のアンテナ32a−2(k=2番目のアンテナ)を介して実行させる(ステップS15)。例えば、ジョブ制御部3は、図6(b)に示すジョブリスト50bのICタグのID=t1の分割コマンドを1つずつ順番にR/W26aに対して、アンテナ32a−2を用いて実行する旨の情報とともに送信し、それぞれの分割コマンドについて処理結果を取得する。同様に、ICタグのID=t2、t3、・・・それぞれに含まれる分割コマンドについても順番に1つずつ分割コマンドを送信し、分割コマンドごとに処理結果を取得する。
【0080】
ジョブ制御部3は、例えば、分割コマンドの処理結果が、所定回数連続で失敗である場合に、現在のアンテナを介した分割コマンド実行処理(ステップS15)を終了してもよい。これにより、現在のアンテナの交信範囲にICタグが存在していて、分割コマンドが失敗しない限り、分割コマンドの実行処理が続けられる。
【0081】
なお、ジョブ制御部3は、一定時間経過後に分割コマンド実行処理(ステップS15)を終了するようにしてもよい。また、ジョブリストの分割コマンドが全て実行された場合も、分割コマンド実行処理(ステップS15)は終了する。
【0082】
ジョブ制御部3は、現在のアンテナを介した分割コマンド実行処理(ステップS15)において処理結果が成功であった分割コマンドを、ジョブリストから削除する(ステップS16)。これにより、ジョブリストには、未実行の分割コマンドか、実行に失敗した分割コマンドだけが残る。結果として、実行する必要のある分割コマンドが選択されてジョブリストに残ることになる。
【0083】
図6(c)は、図6(b)で示したジョブリスト50bから成功した分割コマンドを削除したジョブリストの例である。図6(c)に示すジョブリスト50cでは、ジョブリスト50bに含まれていた分割コマンドのうち、ICタグのID=t1の分割コマンドと、ICタグのID=t2の分割コマンドJ1、J2が削除されている。
【0084】
また、分割コマンドの処理結果は、ジョブデータ17の一部として、記録部6に記録されることが好ましい。図7は、分割コマンドの処理結果を表すデータの例を示す図である。図7に示す例では、ICタグのIDごとに、分割数、完了、分割コマンドを表すデータがそれぞれ記録されている。ジョブ制御部3は、例えば、分割コマンドの処理結果が全て成功であるICタグのIDの完了を表すデータを“1”に更新する。これにより、ICタグごとに処理が完了したか否かを示す情報が記録される。
【0085】
また、複数のICタグをまとめたタググループごとの処理結果を示すタググループ16が記録部6に記録されてもよい。図8は、タググループごとの処理結果を表すデータの例を示す図である。図8に示す例では、タググループIDごとに、完了を表すデータと、タググループIDのタググループに含まれるICタグのIDを表すデータとが記録されている。これにより、タググループ単位ごとに処理が完了したか否かを示す情報が記録される。ジョブ制御部3は、例えば、ICタグごとの処理結果を基に、タググループごとの処理結果を更新することができる。
【0086】
例えば、コマンド受付・返却部2がアプリケーション12から受け付けた1つのコマンドで処理するICタグの集合を、1つのタググループとすることが好ましい。これにより、タググループごとの処理結果は、コマンドごとの処理結果を表すことになる。
【0087】
ジョブ制御部3は、現在のアンテナのカウンタkが、タグアクセス制御システム1が制御する全アンテナ数に達しているか否かを判断する(ステップS17)。
【0088】
現在のアンテナのカウンタkが2の場合、kは、全アンテナ数の4に達していないので、(ステップS17でNo)、ジョブ制御部3は、再び、ステップS4の処理を行う。ステップS4では、すでに、1番目のアンテナを介して検出されたIDの数Nは、期待タグ枚数Mに達しているので(N=M)、ステップS5〜7の処理はされずに、ステップS8で2番目のアンテナでの残り時間Trが計算される。2番目のアンテナを介して、すでに、ステップS15の分割コマンド実行処理が行われているので、残り時間Tr=0である可能性が高い。Tr=0の場合、kがインクリメントされ(ステップS10)、処理対象のアンテナが3番目のアンテナ(すなわち、アンテナ32b)となる。
【0089】
その後、ジョブ制御部3は、ステップS4、S8、S9、S11、S12の処理を行い、分割部5が、コマンド分割処理(ステップS14)を行う。この時、ジョブリストは、例えば、図6(c)に示すように、2番目のアンテナを介して実行された分割コマンドが削除された状態である。分割部5は、ジョブリストの分割コマンドをさらに分割することができる。また、分割部5は、例えば、例えば、ジョブリストに残っている分割コマンドで読み込まれるべきデータの合計量およびICタグと複数のR/W間の交信可能時間等に基づいて、ジョブリストの分割コマンドをさらに分割するか否かを判断してもよい。判断の結果、コマンド分割を行わないようにしてもよい。
【0090】
ジョブ制御部3は、分割コマンドを3番目のアンテナを介してR/W26bに実行させる(ステップS15)。処理が成功した分割コマンドについては、ジョブリストから削除される(ステップS16)。ジョブ制御部3は、アンテナのカウンタkが全アンテナ数に達しているか否かを判断する(ステップS17)。このようにして、kが全アンテナ数に達するまで、上記の処理が繰り返される。
【0091】
kが全アンテナ数に達した場合(ステップS17でYesの場合)、コマンド受付・返却部2が、各ICタグのIDにおける分割コマンドの処理結果に基づいて、コマンドの処理結果を生成する(ステップS18)。コマンド受付・返却部2は、タググループがコマンドごとに作成された場合には、図8に示すようなタググループごとの処理結果を、コマンドの処理結果としてアプリケーション12へ返却することができる。
【0092】
(分割部5が、コマンドまたは分割コマンドを分割する処理の詳細な例)
ここで、ステップS11のコマンド分割処理の詳細な例について説明する。図9は、分割部5が、ジョブリストのコマンドまたは分割コマンドを分割する処理の詳細な例を示すフローチャートである。図9に示すように、分割部5は、まず、ジョブリスト内に含まれる分割コマンドのうち、扱うデータのバイト数が最大である分割コマンドのバイト数Bを取得する(ステップS21)。
【0093】
また、分割部5は、ジョブリスト内に含まれる分割コマンドの総数Jを求める(ステップS22)。さらに分割部5は、1つのアンテナにおいて、同一のICタグと交信可能な時間Taを求める(ステップS23)。Taは、例えば、アンテナの交信範囲の長さaと、物品の移動速度vを用いて、Ta=a/vにより、求められる。
【0094】
分割部5は、バイト数Bのデータを扱う分割コマンドを実行するのにかかる時間の平均値Tbを求める(ステップS24)。Tbは、例えば、予め記録部6に記録しておくことができる。分割部5は、分割数d0=1にして、d0を初期化する(ステップS25)。
【0095】
分割部5は、1アンテナを介して実行できる分割コマンドの数rおよび現在のアンテナを介して残りの時間でできる分割コマンドの数r´とを求める(ステップS26)。例えば、分割部5は、1アンテナを介して同一のICタグと交信できる交信可能時間Ta、分割数d0、バイト数Bの分割コマンドにかかる平均時間Tbを用いて、1つのアンテナを介して実行できる分割コマンドの数rを下記(式1)により求めることができる。
【0096】
(式1)
r=floor(Ta×d0/Tb)
【0097】
上記(式1)で、floor(X)は、Xを超えない最大の整数を表す。
【0098】
また、分割部5は、図2のステップS8で計算された現在のアンテナを介する交信が可能な残り時間Trを用いて、下記(式2)により、現在のアンテナを介して実行できる分割コマンドの数r´を求めることができる。
【0099】
(式2)
r´=floor(Tr×d0/Tb)
【0100】
上記(式2)においても、floor(X)は、Xを超えない最大の整数を表す。
【0101】
次に分割部5は、r×残りのアンテナ数に、r´を足した値(r)がd0×Jを超えるか否かを判断する(ステップS27)。ステップS27でNoの場合、d0に1を加えて(ステップS28)、再度、rおよびr´を計算し(ステップS26)、r×残りのアンテナ数+r´が、d0×Jを超えるか否かを判断する(ステップS27)。r×残りのアンテナ数+r´がd0×Jを超える(ステップS27でYes)まで、d0に1を加えてrおよびr´を計算する処理を繰り返す。
【0102】
r×残りのアンテナ数+r´がd0×Jを超える(ステップS27でYes)と、分割部5は、ループカウンタnを初期化(n:=0)して、コマンド分割処理(ステップS30、ステップS31)を行う。
【0103】
分割部5は、ジョブリストのn番目のIDの分割コマンドまたはコマンドが、すでにd0に分割されているか否かを判断し(ステップS30)、判断結果がNoであるときに、n番目のIDの分割コマンドまたはコマンドをd0に分割する(ステップS31)。ステップS30の判断結果がYesの場合は、そのIDの分割コマンドに関しては、分割しない。分割部5は、ジョブリスト中にある全てのIDの分割コマンドについて、上記ステップS30の判断を行い、判断結果がNoの場合にステップS31の分割処理を行う処理を繰り返す。上記ステップS30の判断を行うことによって、分割が必要なIDの分割コマンドのみが分割されることになる。
【0104】
以上、本発明の実施形態について説明したが、本発明は、本実施形態に限られるものではない。本実施形態において、速度測定部23が、センサ31を用いて物品の速度vを測定しているが、物品の速度vが略一定である場合は、速度vを予め記録部6に記録しておくこともできる。
【0105】
(実施の形態2)
図10は、実施の形態2におけるタグアクセス制御システムの構成を示す機能ブロック図である。本実施形態におけるタグアクセス制御システムの機能は、コンピュータ28および複数のR/W27a、27bに分散されている。図10に示す構成においては、コンピュータ28、R/W27a、27bおよびセンサ31が、ネットワーク38を介して互いに接続されている。コンピュータ28には、タグアクセス制御システムの機能の一部1aとしてコマンド受付・返却部2と、R/W情報14が記録された記録部63が設けられる。コンピュータ28は、さらに、コマンドを発行するアプリケーション12と、ネットワーク38を介して外部とデータ通信を行うための通信部61aを備える。
【0106】
R/W27aには、タグアクセス制御システムの機能の一部1aとして、ジョブ制御部3、検出部4、分割部5、記録部6、連携部62、タイマ21が設けられる。R/W27bにも、R/W27aと同様に、タグアクセス制御システムの機能の一部1cが設けられる。R/W27bのタグアクセス制御システムの機能の一部1cは、R/W27aのタグアクセス制御システムの機能の一部1bと同様である。また、R/W27aの記録部6に記録されたパラメータ13、R/W情報14、移動情報15、ジョブデータ17およびタググループ16と同じ内容のデータが、R/W27bの記録部6にも記録される。
【0107】
R/W27a、27bは、ネットワーク38を介して外部とデータ通信を行うための通信部61a、61cとアンテナ32d、32e、32f、32gを制御するアンテナ制御部29a、29bをそれぞれ備える。
【0108】
コマンド受付・返却部2、ジョブ制御部3、検出部4、分割部5のそれぞれの機能は、実施の形態1と同様である。コマンド受付・返却部2とジョブ制御部3とのデータ通信は、ネットワーク38、通信部61a、61b、連携部62を介して行われる。
【0109】
R/W27aのジョブ制御部3と、R/W27bとのジョブ制御部(図示せず)とは、連携部62および通信部61bを介してデータ通信を行う。このデータ通信では、例えば、送信先R/WのID、受信元R/WのID、ジョブリスト等のデータが送受信される。ジョブリストには各分割コマンドを実行すべき実行時刻が指定されているか、各分割コマンドを実行させるためのトリガとなるセンサIDが指定されていてもよい。また、各R/Wにセンサが接続されている場合には明示的にセンサIDを指定しなくともよい。これにより、例えば、実施の形態1と同様に、コンピュータ28のコマンド受付・返却部2が受け付けたコマンドの処理が、各R/W27a、27bで複数の分割コマンドに分割されてジョブリストが生成され、ジョブリストに含まれる複数のジョブが示す分割コマンドがR/W27aおよびR/W27bに割り当てられる。
【0110】
ジョブリストにセンサIDが指定されている場合、各R/W27a、27bは、ジョブリストで指定されたセンサの動作を監視し、当該センサが作動した場合に、ジョブリストに含まれるジョブが示す分割コマンドを実行する。
【0111】
各R/W27a、27bが、指定された実行時刻に同期させてジョブを実行させる場合のR/W27a、27b間のデータ通信では、分割コマンドを実行するタイミングを同期させるため、起動時の時計合わせと、時刻指定されたジョブリストが必要である。
【0112】
例えば、コンピュータ28のコマンド受付・返却部2が受け付けたコマンドは、トリガとなるセンサIDとともにR/W27aへ通信部61aによって送信される。R/W27aの通信部61aは、コマンドとセンサIDを指定する情報を受信すると分割部5へコマンドとセンサIDを指定する情報を渡す。分割部5は、コマンドを分割して例えば、図6(b)に示すようなジョブリストを生成する。ジョブ制御部3は、そのジョブリストに含まれるジョブが示す分割コマンドを、指定されたセンサをトリガとして実行する。
【0113】
このとき、例えば、実行が完了しなかった残りのジョブリストを“〔job1、job2、job3〕”とし、R/W27bでこのジョブリストを実行すべき時刻を “time1”とすると、R/W27aのジョブ制御部3が通信部61bを介してR/W27bに向けて送信されるデータは(R/W27a、R/W27b、〔job1、job2、job3〕、time1)のように表される。
【0114】
本実施形態では、タグアクセス制御システムの機能を分散させることで、コンピュータ28に負荷が集中することを防ぐことができると同時に、並列処理を行うことによってタグアクセスの性能を向上させることができる。
【0115】
(実施の形態3)
実施の形態3は、実施の形態1におけるコンピュータ11において、アプリケーション12から発行されたコマンドが、ICタグのメモリ上の互いに離れた複数の位置にデータを書き込む命令である場合の例である。
【0116】
図11は、コマンド受付・返却部2が受け付けたコマンドの例を示す図である。図11に示すコマンドには、書き込むデータのデータ名と、書き込むデータが含まれている。図11に示すコマンドは、例えば、作業者IDのデータとして、“yamada”を、通過時刻h1のデータとして、“200511191030”をICタグへ書き込む命令を示すデータである。
【0117】
図11に示すような、データ名とデータで書き込み命令が示されるコマンドが発行される場合、データ名とICタグへの書き込む位置との対応関係を表すデータが必要になる。図12は、データ名とICタグとの対応関係を表すデータテーブルの例を示す図である。図12に示すデータテーブルは、データ名ごとに対応するオフセットとサイズが記録されている。オフセットは、ICタグメモリ上の書き込み開始する位置を示すデータであり、サイズは、書き込むことができるデータのサイズを示すデータである。
【0118】
図13は、図12に示されるデータが書き込まれたICタグメモリの一例を模式的に示す図である。
【0119】
図13に示すように、ICタグメモリ65において、作業者IDのデータを書き込む領域65aと、通過時刻h1のデータを書き込む領域65bとが、物理的に互いに離れた位置に存在することがある。ICタグメモリ65上の斜線部65aが作業者IDのデータの領域であり、斜線部65aとは離れた位置にある斜線部65bが、通過時刻h1のデータの領域を示している。
【0120】
図13に示す例のように、離れた位置にデータを書き込む場合は、離れた位置のそれぞれのデータを分割単位として、それぞれのデータを書き込む分割コマンドを生成することが好ましい。例えば、検出部4が、ICタグのIDを検出し、そのICタグのIDに対応するコマンドをジョブリストに追加する際に、データ名ごとに分割コマンドを生成して追加することができる。
【0121】
図14は、検出部4が、ICタグのID=t1を検出した場合に、t1の分割コマンドとして、作業者IDを書き込む分割コマンド(ジョブJ1)および通過時刻h1を書き込む分割コマンド(ジョブJ2)を生成してジョブリストに追加した場合の例を示す図である。ジョブリスト50dには、作業者ID、通過時刻h1それぞれの書き込み位置を示すオフセット、それぞれの書き込むデータサイズおよび書き込むデータが、タグt1と対応付けて記録されている。
【0122】
図14に示すように、離れた位置にデータを書き込むコマンドを、離れた位置それぞれにおいてデータを書き込む複数の分割コマンドとすることによって、分割の手間を省き、複数のR/Wに効率良く分割コマンドを割り当てることができる。
【0123】
本発明は、工場などの生産現場や工場・倉庫・卸・小売間での物流の現場において、工程管理や入出庫管理の効率化を目的として、例えば、部材・製品・ケースなどの物品へのICタグ適用が広まりつつある生産・物流分野等で利用され得る。
【産業上の利用可能性】
【0124】
本発明は、リーダライタを制御することによって、移動する物品に付された複数のICタグの移動速度を低くすることなく、確実に交信することができるタグアクセス制御システムとして利用可能である。
【図面の簡単な説明】
【0125】
【図1】本実施形態におけるタグアクセス制御システムの構成を示す機能ブロック図である。
【図2】タグアクセス制御システム1が、コマンドを受け付けて、処理結果を返却するまでの処理の一例を示すフローチャートである。
【図3】(a)は、ICタグからデータを読み出す命令を示すコマンドの例である。(b)は、ICタグにデータを書き込む命令を示すコマンドの例である。
【図4】R/W情報14に含まれるデータの例を模式的に示すための図である。
【図5】時刻T1、T2、T3、T4および時間Ta1、Ta2、Ta3、Ta4の例を模式的に表した図である。
【図6】(a)は、検出部4が検出してICタグのIDが記録されたジョブリストの例を示す図である。(b)は、分割部5が、新たに生成したジョブリスト50bの例を示す図である。(c)は、ジョブリスト50bから成功した分割コマンドを削除したジョブリストの例である。
【図7】分割コマンドの処理結果を表すデータの例を示す図である。
【図8】タググループごとの処理結果を表すデータの例を示す図である。
【図9】分割部5が、ジョブリストのコマンドまたは分割コマンドを分割する処理の詳細な例を示すフローチャートである。
【図10】実施の形態2におけるタグアクセス制御システムの構成を示す機能ブロック図である。
【図11】コマンド受付・返却部2が受け付けたコマンドの例を示す図である。
【図12】データ名とICタグとの対応関係を表すデータテーブルの例を示す図である。
【図13】ICタグメモリの一例を模式的に示す図である。
【図14】検出部4が、作業者IDを書き込む分割コマンド、通過時刻h1を書き込む分割コマンドを生成してジョブリストに追加した場合の例を示す図である。
【符号の説明】
【0126】
1 タグアクセス制御システム
2 コマンド受付・返却部
3 ジョブ制御部
4 検出部
5 分割部
6、63 記録部
11、28 コンピュータ
12 アプリケーション
13 パラメータ
15 移動情報
17 ジョブデータ
21 タイマ
22 移動情報生成部
23 速度計測部
24、25a、25b、25c デバイスドライバ
26a、26b、26c リーダライタ
29a アンテナ制御部
31 センサ
32a―1、32a−2、32b、32c アンテナ
33a 物品
34a ICタグ
38 ネットワーク
41 ベルトコンベア
49a、49b、65a、65b コマンド
50a、50b、50c、50d ジョブリスト
61a、61b、61c 通信部
62 連携部
65 タグメモリ

【特許請求の範囲】
【請求項1】
ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御するタグアクセス制御システムであって、
前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを記憶する記録部と、
ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付部と、
前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割部と、
前記リーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出部と、
前記検出部で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御部と、
前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する返却部とを備えるタグアクセス制御システム。
【請求項2】
前記分割部は、前記コマンドによって示されるICタグに書き込むべきデータまたはICタグから読み込むべきデータのサイズを複数の分割データサイズに分割し、各分割データサイズについて、ICタグから読み込む分割コマンド、またはICタグへ書き込む分割コマンドを生成することによって、前記複数の分割コマンドを生成する請求項1に記載のタグアクセス制御システム。
【請求項3】
前記ジョブ制御部は、リーダライタのアンテナの交信範囲内にあるICタグの識別子を予め決められた数だけタググループとして検出し、タググループに含まれるそれぞれの識別子を前記ジョブリストと対応付けて前記記録部へ記録し、前記タググループに含まれる識別子のICタグに対応する前記ジョブリストが示す複数の分割コマンドを、前記複数のリーダライタに順次割り当てる請求項1に記載のタグアクセス制御システム。
【請求項4】
前記ジョブ制御部は、前記物品の移動経路において先行するアンテナのリーダライタにおける分割コマンドの実行結果に基づいて、実行する分割コマンドを選択し、前記リーダライタ以外のリーダライタに割り当てる請求項1に記載のタグアクセス制御システム。
【請求項5】
前記分割部は、前記物品の移動経路において先行するリーダライタによって実行され成功した分割コマンドを前記ジョブリストから除いて残った分割コマンドが示す、ICタグから読み込むべきデータまたはICタグに書き込むべきデータのサイズを、複数の分割データサイズに分割し、各分割データサイズについて、ICタグから読み込む分割コマンド、またはICタグへ書き込む分割コマンドを生成する請求項2に記載のタグアクセス制御システム。
【請求項6】
前記物品の移動速度を測定する速度測定部と、
前記移動速度を用いて、ICタグが前記複数のアンテナの交信範囲内に存在している時間を表す情報を生成して前記移動情報として前記記録部に記録する移動情報生成部とをさらに備える請求項1に記載のタグアクセス制御システム。
【請求項7】
ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を、コンピュータを用いて制御するタグアクセス制御方法であって、
前記コンピュータが、前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とを前記コンピュータが備える記録部から読み出す工程と、
前記コンピュータが備えるコマンド受付部が、ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付ける工程と、
前記コンピュータが備える分割部が、前記コマンドが示す命令を実行するための複数の分割コマンドを生成する工程と、
前記コンピュータが備える検出部が、前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる工程と、
前記コンピュータが備えるジョブ制御部が、前記検出工程で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置とに基づいて、前記複数のリーダライタに順次割り当てる工程と、
前記コンピュータが備える返却部が、前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付部が受け付けたコマンドに対する処理結果を前記上位システムに返却する工程とを含むタグアクセス制御方法。
【請求項8】
ICタグが設けられた物品の移動経路に沿って設けられた複数のアンテナそれぞれに接続された複数のリーダライタと、前記複数のアンテナの交信範囲を順に移動する物品に設けられたICタグとのデータ通信を制御する処理をコンピュータに実行させるタグアクセス制御プログラムであって、
前記物品の移動状況に関する移動情報と、リーダライタに接続されたアンテナの配置を表すリーダライタ情報とをコンピュータの記録部から読み出す処理と、
ICタグにデータを書き込む命令またはICタグからデータを読み込む命令を示すコマンドを上位システムから受け付けるコマンド受付処理と、
前記コマンドが示す命令を実行するための複数の分割コマンドを生成する分割処理と、
前記複数のリーダライタのうちいずれか1つのリーダライタにおけるアンテナの交信範囲内にあるICタグの識別子を、前記リーダライタに検出させる検出処理と、
前記検出処理で検出されたICタグの識別子ごとに、前記複数の分割コマンドが対応付けられて構成されるデータであるジョブリストを生成し、前記ジョブリストに含まれる複数の分割コマンドを、前記移動情報が示すICタグの移動状況と前記リーダライタ情報が示すアンテナの配置に応じて、前記複数のリーダライタに順次割り当てるジョブ制御処理と、
前記複数の分割コマンドの実行結果に基づいて、前記コマンド受付処理で受け付けられたコマンドに対する処理結果前記上位システムに返却する返却処理とをコンピュータに実行させるタグアクセス制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate