RFIDリーダライタの制御方法について

このQ&Aのポイント
  • RS232CでのRFIDリーダライタの制御方法について研究用にタカヤ製品のRFID評価キットTR3-D002Aを購入しました。リーダライタを制御するプログラムを作りたいが、初めてのプログラミングで途方にくれています。
  • リーダライタの通信コマンドが16進数で指定されている場合、どのように機器に送信すればレスポンスが得られるのか、また2進数でバイナリに変換して送信するのか、アスキーでテキストボックスに入力して送信するタイプのソフトでは反応させることができるのか疑問です。
  • 質問がうまく表現できていないかもしれませんが、RFIDリーダライタの制御方法について教えていただけると助かります。
回答を見る
  • ベストアンサー

RS232CでのRFIDリーダライタの制御

研究用にタカヤ製品​http://www.takaya.co.jp/enterprise/rf/rfid/module.htm​のRFID評価キットTR3-D002Aを購入しました。 Visual Basicでリーダライタを制御するプログラムを作りたいと思っているのですが、プログラミングなどはした事もなく何から初めてよいのか途方にくれています。 とりあえず、rs232c通信のソフトで通信コマンドを直接送ってリーダライタを動かしてみようと思っているのですが、 通信コマンドが16進数で 02 00 4F 01 00 03 55 0Dのようにしめしてある場合、どのように機器に送信すればレスポンスが得られるのでしょうか? 2進数でバイナリに変換して送信するのでしょうか? アスキーでテキストボックスに入力して機器に送信するタイプのソフトでは反応させることは無理なのでしょうか? うまく質問できなくて申し訳ないのですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • lumiheart
  • ベストアンサー率47% (1097/2288)
回答No.1

単純には Dim Send(8)=Byte send(1)=&h02 send(2)=&h00 send(3)=&h4F send(4)=&h01 send(5)=&h00 send(6)=&h03 send(7)=&h55 send(8)=&h0D Dim count As Integer SerialPort1.Write(send(), 0, count) 但し、VB2005です、 VB6では多少コマンドは違いますが考え方はほぼ同じ バイナリコードが出せるシリアルモニタです http://members.at.infoseek.co.jp/mdr_tech/upload/upload.htm シリアルデバッグツールVer1.12

kiyume
質問者

お礼

回答ありがとうございます。 書くのを忘れて申し訳ないです。使おうと思っているのはVB6なのですが mscommを使って、データを送信しようと思うのです。 Dim Out() As Byte       MSComm1.Output= のところをどのように記述すれば、機器にデータが送れますでしょうか?

kiyume
質問者

補足

すいません。教えてもらったとおり、 Dim send(8) as Byte send(1)=&h02 :: :: send(8)=&h0d MScomm1.output=send とすればよいのですね。 お礼と補足も内容がちぐはぐで申し訳ないです。 失礼しました。改めてありがとうございました。

関連するQ&A

  • rs232cでのRfidリーダライタの制御方法

    研究用にタカヤ製品http://www.takaya.co.jp/enterprise/rf/rfid/module.htmのRFID評価キットTR3-D002Aを購入しました。 Visual Basicでリーダライタを制御するプログラムを作りたいと思っているのですが、プログラミングなどはした事もなく何から初めてよいのか途方にくれています。 通信コマンドは公開されているので、とりあえず、直接通信コマンドをRS232C経由でリーダライタに送って、リーダライタの読み取りモードを変更してみようと思っているですが、そのようにrs232cに繋いだ機器に直接通信コマンドを送るようなソフトはあるでしょうか? テキストデータを送受信するソフトはあるのですが、なにもレスポンスがありません。通信コマンドは STX アドレス コマンド データ長 ETX SUM CR などとなっているので、それらを送って機器からレスポンスを得たいのですが、、、、 おそらく質問の仕方もかなりずれていると思うのですが、お手柔らかに答えて頂けると幸いです。 また、参考になるサイトなどがあれば教えてください。 osはwindows2000です。よろしくお願いします。

  • RS232CでのRFIDリーダライタの制御プログラム。

    研究用にタカヤ製品http://www.takaya.co.jp/enterprise/rf/rfid/module.htm のRFID評価キットTR3-D002Aを購入しました。 ↓のようなVB6.0で16進数のバイト列を送信してレスポンスをえるプログラムを作りました。 MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.Handshaking = comNone MSComm1.PortOpen = True Dim Send(7) As Byte Send(0) = &H2 Send(1) = &H0 Send(2) = &H4F Send(3) = &H1 Send(4) = &H0 Send(5) = &H3 Send(6) = &H55 Send(7) = &HD MSComm1.Output = Send 通信プロトコルはあっていると思うし、COMモニタでみても、ついてきたデモソフトと同じ信号が出力されているので、 リーダライタからレスポンスのデータが帰ってくると思うのですが、COMモニタでみる限り何もレスポンスはないです。 プログラミングは初めてなのもあり、困っています。 何か特殊なことをしないと、こういうSDKが別売であるような機器を制御するのは無理なのでしょうか? また、原因は何が考えられるでしょうか?

  • RFIDのリーダライタの選択。

    現在、RFIDをテーマにして卒業研究を進めてるのですが、 リーダライタの選択に困っています。 目的としてはまだRFIDが導入されていない、あるいは研究段階にあるものについて、汎用のリーダライタとタグで使用実験をして、問題点を指摘し、研究する事です。 卓上型で、パソコンとシリアルかUSBなどで接続でき、読み取り距離が10cm程度はあるもの。そしてアンチコリジョン機能対応のもの汎用ソフトでサンプルプロラムの開発ができものを探しています。水や金属の近くなどで使うという予定はありません。また、研究費もあまり出ず、私にもそこまでの金銭的余裕はないため、できるだけ安価なものを探しています。(できれば5万円以内) モジュールとアンテナとタグのような評価キットでもよいのですが、よいものはないでしょうか?また、安物は使い物にならないというような気をつけた方が良いこともあれば教えて頂けると助かります。よろしくお願いいたします。

  • VB6.0 から RFIDタグを制御する方法

    Windows2000 SP3 VisualBasic6.0 SP5 を使用しています。 http://retail.fujitsu.com/jp/rfid/rf-short.html ここの RFIDタグ・リーダライタを使っての タグへの読み書きをVBを利用して行いたい のですが、サンプルプログラムがCしかついていません。 どなたかVBではどう記述すればよいか教えて 頂けませんでしょうか・・・。 Cが分からないのです。。。(涙)

  • VBでRS232Cの制御について。

    通信のデータ長やパリティ、ポーレート等の設定を”SETTINGS”でおこない、ポートをオープンして外部機器にデータを送る際、ここでは、データをバイナリデータで送らなければなりません。 STX,アドレス,チェックサム,ETXの順にそれぞれアスキーコードで16進数に変換して送ってますが、うまく通信できません。 教えて頂けませんか。 素人でごめんなさい。 この部分のサンプルプログラムがあれば最高なんですが・・・。

  • RFIDなどの近距離無線通信について教えてください

    RFIDについて調べています。スマートフォンに外付けするリーダーライターがいくつかあったのですが、近距離無線通信の知識がなくて、どれがいいのか分かりません。なるべく小さくて、アンドロイドとiPhoneどちらでも使えて、距離が10mくらいのリーダー(できればライター)があれば教えてください。また、BluetoothでRFIDタグのように電源なしで通信できるものはありますか?技術的に可能なのでしょうか?無線通信についてほぼ知識がないです。教えいていただきければありがたいです。よろしくお願いします。

  • C++でシリアル通信

    現在、私は「RFIDによる図書管理システム」という題材の下、卒業研究を行っています。 卒研室で購入したRFIDのリーダー/ライター(以下、リーダー)は、RS232C接続のものでした。USBタイプのものがあるのは、購入した後分かりました。 「RS232C接続のリーダーから、タグのデータを読み取り、それをブラウザに送信する」というアプリケーションをC++(MFC)で作成している途中です。さらに詳細を述べると、アプリケーションの「リード」ボタンをクリックすると、リーダーへリード命令(バイナリコード)を送信し、リーダーからのレスポンスをブラウザに送信するという処理を、一括して行う予定です。 何故、ブラウザに送信するかというと、例えば図書管理システムの「検索」メニューの処理の場合、「リーダから読み込んだデータをブラウザに送信し、あらかじめ作成しているデータベースと目的の書籍を照会し、書籍の詳細をブラウザに表示させる」という処理を実現させるためです。 いかんせん、MFC初心者なので、シリアル通信のことに関しての知識がほとんどありません。 Webで調べてみたのですが、力及ばず、RS232Cと通信ができる関数等が見つかりませんでした。 どなたか、アドバイス宜しく御願いします。 最後になりましたが、開発環境は WindowsXP、Visual C++ です。

  • RS-232C通信(その1)

    RS-232Cの通信が上手くいかず困っています。 ユニットはオムロンV600コントローラと三菱シリアルコミュニケーションユニットです。 コントローラ取説を参考にケーブルを製作しましたが自信がありません。 正誤について指摘ください。 <コントローラ取説記載> コントローラ側⇔上位機器 GR 1─シールド   FG SG 9──────SG SD 2──────RD RD 3──────SD RS 4─┐  ┌─RS CS 5─┘  └─CS <製作したケーブル> コントローラ側⇔通信ユニット(A1SJ71QC24N-R2) GR 1─シールド SG 9──────SG 5 SD 2──────RD 2 RD 3──────SD 3 RS 4─┐  ┌─RS 7 CS 5─┘  └─CS 8 ┌─DTR 4 └─DSR 6 接続なしCD 1 宜しくお願いいたします。 背景ですが、現在、設備にV600を設置しておりVBでのプログラムを使い通信しております。 今回、V600を増設する、PCを集約化するなどの理由により、PLCから通信することになったのです。 (過去もPLCから通信しようとしたのですが、出来なくてPCにしてしまいました) そこで困っているのは、A1SJ71で”オーバーラン・フレーミングエラー”が出てしまいます。 データの送り方、受け方が解らないのです。 やりたいのは、 ”アドレス”0010”にアスキーで”070119”を送信したい”です。 コマンドデータは、”WTA10010070119” WT:コマンド A:アスキー 1:ヘッドチャンネル 0100:アドレス 070119:データ 質問1:”CR”はどう付加(表記)すればいいのでしょうか。 プログラムは下記のとおりです。 転送指令 ├─┤├─┬──(MOV K2 D100) A1SJ71のCH2を指定しD100へ │    ├──(MOV K7 D101) データ長7ワード │    ├──($MOV "WTA10010070119" D104) 送信データをD104(CR必要ですがわからない) │    └──(SET M○○) データ転送セット │ 送信指令 ├─┤├────(G.OUTPUT UA D100 D104 M○□)UAは先頭アドレスがXA0から始まる 質問2:間違い教えてください。 以上、宜しくお願いいたします。 ごちゃごちゃして申し訳ありません。 もしかして、”無手順送信用ユーザー登録フレーム”のアドレス”B7H”・”157H”終了コード(CR/LF)の指定をすればいいのですか。 このバッファメモリの変更の仕方がわかりません‥。 バッファメモリの書き替えは、 ”TO”命令で出来そうです。 やってみて、問題がありましたら、(その2)にて質問させていただきます。 また、結果も記載します。

  • VB2008にてRS232C通信をするソフトを作ってみました。

    VB2008にてRS232C通信をするソフトを作ってみました。 通信する相手はボードで、ボードに対してコマンド(アスキー)を送信します。 送信した際に、ボードより回答は有るのですが特に受信の処理はしていません。 ノートPCなのでUSB-232C変換ケーブル(秋月電子の物)にて通信しております。 とりあえず通信は出来て、思った通りに動くのですが、1時間ほど経つとソフトがフリーズ する現象が起きます。 特に大量の通信をしている訳ではなく、3~4回ほど5文字位を送信しているだけです。 ソフトが立ち上がっている際は、常に通信ポート(例えばCOM3)は開いたままにして いる事に問題が有るのでしょうか? USB-232C変換ケーブルが悪いのでしょうか? それとも、ボードよりの返信がPCの何処かのバッファに溜まってしまうのでしょうか? フリーズする時は、特にボードに対して送信はしていないタイミングです。 1時間ほど通信したままにしてほったらかしにしている状態です。 これだけでは、解らないかも知れませんが、フリーズしてしまう要因で思い当たる事に 気づいた事が有りましたら何でも良いので、教えて下さい。 当方、この通信は初めてなもので、知らない事が多いかと思います。 ちなみにポートを閉じるタイミングはソフトを落としたときです。

  • RS232C通信(PC⇔PLC)

    PCとPLCでシリアル通信を行っています。PLCからPCへステータス受信要求し、PCから正常アンサーがあればPLCからPCへ処理開始指令コマンドが出力されるというプロトコルです。実際には、PC側ステータス正常の場合、PLCへの正常アンサーを出力するところまでは行くのですが、その直後にPLCから送信されているはずの処理開始指令コマンドを受信することができません。一連のコマンド送信・受信の間隔が狭すぎるのかと思い、PLC側で処理開始指令コマンド送信前に10msecのウェイトを設けるとPC側で受信することができました。(PLC側の送信が悪いのか、PC側の受信に問題があるのか不明ですが、、、) シリアル通信では、上記のような問題が発生しないように送受信の間隔等なんらかの規約が定められているのでしょうか??ウェイトを設けることなく通信を行いたいのですが、考えられる対処法を教えていただけませんでしょうか。よろしくお願い致します。 なお、通信機器の仕様は以下の通りです。 PLC:三菱シリアルコミニケーションユニット QJ71C24N-R2 PC:WinXpSP2、COMポート、VisualBASIC6.0のCommイベントによりデータ受信(10msecウェイトなしでは、処理開始指令コマンド送信時にCommイベントが発生しませんでした。) ※アスキー文字、PLC・PCともに送信終了コード(CR+LF)でバッファデータ読込み

専門家に質問してみよう