どうも!リョクちゃです。
久々のVB.Net記事の更新です。
タイトル通り、以前にRFIDリーダを使う機会があったので
RFIDとは何かから学んだことを紹介していきます。
EtherNet経由で接続されたRFIDリーダをVB.Netで制御し、
まずは接続するところからを記事にします。
読込みや書込みに関しては、また別の記事で紹介していきます。
ちなみに前回のVB.Net記事はこちら
目次
RFIDとは
そもそもRFIDとは何か、
の略で、調べてみると
RFID(英: radio frequency identifier)とは、ID情報を埋め込んだRFタグから、電磁界や電波を用いた近距離(周波数帯によって数センチメートル~数メートル)の無線通信によって情報をやりとりするもの、および技術全般を指す。 従来のRFタグは、複数の電子素子が乗った回路基板で構成されていたが、近年、小さなワンチップのIC (集積回路)で実現できるようになってきた。 これはICタグと呼ばれ、そのサイズからゴマ粒チップと呼ばれることもある。 一般的にRFIDとはICタグ、その中でも特にパッシブタイプのICタグのみを指して用いられることが多い。
簡単にかみ砕くと、電波によってデータのやり取りをする機器ですね。
- データを読込んだり書き込んだりするのがリーダと呼ばれる機器
⇒ RFIDリーダ - データが蓄積されている、されるのがタグと呼ばれる機器
⇒ RFIDタグ IDタグ って呼ばれています。
になります。
最近では、各業界で様々な活用をされていますね。
例えば、ユニクロがわかりやすいかもしれません。
ユニクロの製品のだいたい(ほぼすべて?)には、このRFIDが使われています。
皆さんも経験したことがあるのではないでしょうか?
ユニクロではカートに入れた商品をレジの横のカート置き場に置くことで
自動で購入金額を算出し、レジに表示してくれています。
流れとしては、
- カート置き場にカートを置く
- カート内のタグをRFIDで読み取る
- タグに書込まれた情報から商品の価格を抽出
- 集計後レジへ表示
といった流れになるのでしょうか。
最近では、このようなカートを置くだけで会計ができる、セルフレジ方式の多くは
RFIDを活用しています。
※会計自体はお客さんが現金もしくは電子決済を選びます。
食品分野ではなかなか難しいですが、近年では検証もされているようです。
※流通に関しては、RFIDが活用されています。店舗運用に関しては検証段階?
まだまだ、これからのRFID、今後が楽しみですね。
特徴
以下のような特徴があります。
- 非接触でIDの読み取りが可能
- データの書き換えが可能
- バーコードと違って汚れても読み取れる
- 電波で読み取るので遮蔽物の影響を受けにくい(電波が通れば)
RFIDタグ
タグにもいくつかのタイプがあります。
- パッシブタイプ
- アクティブタイプ
- セミアクティブタイプ
パッシブタイプ
IDタグの中に電池が搭載されていないタグに分類され、
ICカード、PasmoやSuica、ICOCAなどがパッシブタイプに該当します。
実はICカードもRFIDなんですね。
読み取れる距離も近距離で、だいたい数十センチ程度になります。
書込めるメモリの容量もタグによってさまざまで、
数十~数千バイトになります。
パッシブタイプは、電池内蔵されていないことから
自身で電波を発することができないので、基本的には
RFIDリーダからのエネルギーで動作をします。
寿命も一般的には、半永久的といわれています。
アクティブタイプ
パッシブタイプとは違って、電池が内蔵されており、自身で電波を発することができます。
読み取れる距離も長く、数10メートル以上で可能です。
自動車のキーやスポーツ分野での活用がされています。
スポーツ分野だと、マラソンやタイムを計るときの機器として活用されるケースがあります。
最近では落とし物防止用のキーホルダに内蔵されていることもありますね。
これを落としたくないモノに付けておいて、いざなくなったときでも
キーホルダの場所を検索することでどこにあるかすぐにわかりますね。
画像のようなモノになります。スマートタグって言われていますね。
寿命はパッシブタイプと違って、電池が内蔵されていることから
数年程度と言えます、使用頻度によって変わってくるでしょう。
セミアクティブタイプ
こちらはパッシブタイプとアクティブタイプの特徴を併せ持ったタグに分類されます。
パッシブタイプより、読み取れる距離が長い
アクティブタイプより、電池の消耗が少ない
といった特徴があり、両者の欠点を補ってくれるようなのがセミアクティブになりますね。
良い点を集めたRFIDですね。
使用例としては、スポーツに関する事例が多く
- レースのタイム計測(スポーツ競技判定)
自転車やマラソン、駅伝
スポーツ分野で目覚ましい活躍をされているようです。
今回使用したRFID
以下の組み合わせのモノを使用しています。
No | 機器名 | メーカ名 | 備考 | 画像 |
---|---|---|---|---|
1 | V680S(RFIDリーダ) | Omron | EtherNetタイプ | |
2 | V680S-D2KF67M(IDタグ) | Omron | メモリ容量:2000バイト 質量:12g 形状:40×40×5(mm) アクセス回数:1兆回 |
接続構成
以下のような構成になります。
RFIDとの接続
VB.Netで接続するには、System.Net.Socketsクラスを使います。
ネットワークへのアクセスを厳密に制御する必要のある開発者のための、Windows ソケット (Winsock) インターフェイスのマネージド実装が用意されています。
といったのがサポートされているクラスになります。
使うには、まず変数として宣言をしておきます。
この二つを最初に宣言します。
TcpClientは、TCPネットワークサービス用のクライアント接続が提供されています。
インターネットにおいて標準的に利用されているプロトコルです。
インターネットで使われているものだと認識してもらえればと思います。
ソケットを作成
変数の宣言をしたら、ソケットを生成します。
以下の記述で生成ができます。(インスタンスの生成ともいいます。)
接続先の情報も変数として準備しておきます。
TCP接続
ソケットを生成し、接続する機器のパラメータ準備もできたので
実際に機器に対して、以下の記述で接続を試みます。
NetworkStreamも取得しておきます。
通信が確立した後のデータのやり取りで使います。
Connectを実行し、特に例外が発生していなければ通信ができています。
気になるようであれば、以下を実行し接続状態を取得します。
- Trueなら接続されている
- Falseなら接続されていない
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#Region "変数宣言" Private mSoc As System.Net.Sockets.TcpClient Private mStm As System.Net.Sockets.NetworkStream #End Region #Region "メイン処理" Private Sub main() ' ソケット生成 mSoc = New System.Net.Sockets.TcpClient ' パラメータ設定 Dim ipOrHost As String = "192.168.1.200" Dim port As String = 502 ' TCP/IP 接続 mSoc.Connect(ipOrHost, port) mStm = mSoc.GetStream() ' 接続状態を確認 If mSoc.Connected Then MessageBos.Show("接続成功") End If End Sub #End Region |
まとめ
RFIDとは何かから触れ、実際にRFIDリーダとVB.Netで
接続してみるところまでを紹介していきました。
接続に関しては、Socketクラスを使えば意外にもあっさりとできてしまいます。
接続の仕方で悩まれている方の参考になれば嬉しいです。
次回以降で、読み込みや書き込みについても紹介できたらと思います。
最後までお読みいただき、ありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。